Not really - optimizers are smart enough to get the same performance out of runtime-generic C code using void* and function pointers; after all, it's a simple matter of type inference and constant propagation.
However, that's only true if you let them do their job, ie use link-time optimizations or code inclusion (which is where most of the template performance comes from).
Including the source of qsort() instead of linking against a DLL blob might be enough to make the C code perform as well as the C++ code.