They are just different implementations of the same algorithm. The SVM module (SVC, NuSVC, etc) is a wrapper around the libsvm library and supports different kernels while LinearSVC is based on liblinear and only supports a linear kernel. So:
SVC(kernel = 'linear')
is in theory "equivalent" to:
Because the implementations are completely different in follow you may get different results, the most necessary ones being that LinearSVC solely supports a linear kernel, is quicker and may scale a lot better.
For more details on this, study the SVM Algorithm Tutorial.