There is no difference. typename and class are interchangeable in the declaration of a type template parameter.
You do, however, have to use class (and not typename) when declaring a template template parameter:
template <template <typename> class T> class C { }; // valid!
template <template <typename> typename T> class C { }; // invalid! o noez!