What notion captures the 'class' of all classes? In ZFC there is no set that is the set of all sets, for this we introduce the notion of class. But then what is the 'class' of all classes, is it actually a class? Do we apply the same idea again? But then at what stage do we stop? Does this show that classes are not the right notion to go beyond sets, but more of an ad-hoc solution?
Further, within foundational category theory, we have the notion of grothendieck universes, if i recall rightly, this is equivalent to introducing an axiom that an inaccessible cardinal exists. Does this subsume, or is equivalent to the notion of classes?
Finally, what is the formalism that uses classes to extend ZFC, is the NBG?
 A: To give a very specific  (quite formalistic, and possibly very wrong - depending on your or even my beliefs) answer to some of your questions: 


*

*In ZFC there is no set that is the set of all sets, for this we introduce the notion of class.  


I don't, because I use ZFC.  Whenever I say "class", I mean "formula".  (Today.  I may change my mind tomorrow.)  You may use NBG, of course. 


*

*But then what is the 'class' of all classes.


No such thing, in ZFC.  (Well, there is the set of all formulas.  But that is not what you mean.)  No such thing in NBG either.   Try KM. 


*

*Do we apply the same idea again? But then at what stage do we stop? 


It depends on what you mean by "we".   I stopped at ZFC.  You may go as far as you want. 
You may even use a type-theoretic approach, in which there are infinitely many levels of this
hierarchy. However, once you have countably many levels, you may ask how many levels there are.  But now the pictures looks somewhat similar to a universe $V_{\delta+\omega}$, which ZFC handles very well. 
I seem to recall that Fraenkel-Bar Hillel-Levy, "Foundations of Set Theory", has an enlightening and more detailed discussion of this topic. 
A: Since the question is rather philosophical (e.g., "right notion"), I'll use it as an excuse to record my philosophical opinions on this topic.  The intuition underlying ZFC, i.e., the intuition of the cumulative hierarchy of sets, contains two quite vague notions, (1) the notion of "arbitrary subset" of an infinite set, used at successor stages of the hierarchy, and (2) the notion of iterating "forever", beyond any imaginable bound.  Although these ideas are vague, they have consequences that can be expressed precisely, and the point of the ZFC axioms is to express enough of the consequences to serve as a foundation for what mathematician ordinarily do.  
To add proper classes to the picture, as in the von Neumann-Bernays-Gödel or Morse-Kelley theories, is to add one more level to the cumulative hierarchy, after all the sets.  This is technically useful for some purposes (including some aspects of category theory), but it is incoherent with aspect (2) of the intuition of sets.  If it's possible to add one more level, then the hierarchy of sets should have been continued to include that level and many more beyond it.  
For this reason, I view ZFC, possibly augmented with (mild) large-cardinal axioms or reflection principles as an intuitively more acceptable foundation than a class theory.  I might well use the terminology of proper classes as a convenient abbreviation for statements about sets (e.g., "$V=L$" abbreviates "all sets are constructible", which can be defined in hte purely set-theoretic context of ZFC).  But when people make serious use of proper classes, my picture of what they're doing is that their sets are really just sets of rank below some inaccessible cardinal $\kappa$ and their proper classes are really sets of rank $\kappa$.  If they need super-classes of classes and even higher-rank collections, that's no problem as far as I'm concerned; the universe of sets stretches way beyond $\kappa$.
A: There are various approaches to having classes as formal objects in set theory, the two most common being Gödel-Bernays set theory and Kelly-Morse set theory. In both of these theories, one has several ways to think about classes of classes. 
On the one hand, one can have a class of classes in the sense that there is a class $U\subset V\times V$ of pairs, and one thinks of this as an indexed family of classes $U_a=\{b\mid (a,b)\in U\}$. Thus, one thinks of a classes of classes as a subset of the plane, with the classes in this meta class being the slices of that subset. For this notion of classes of classes, there can be no class of all classes, since we can form the class $D=\{a\mid a\notin U_a\}$, which by the usual diagonal argument cannot occur as a slice in $U$. 
On the other hand, one can consider in GB and KM set theory the meta-classes of definable collections of classes, much like one considers definable collections of sets as classes in ZFC. For any formula $\varphi(X)$ in the language with a class parameter $X$, one may consider the meta-class of all classes for which $\varphi(X)$. If this meta-class contains any proper classes, then it cannot itself literally be itself a class, since every class has only sets as members. So although we can speak of the meta-class of all classes $X$ such that $X=X$, say, which would be the meta-class of all classes, this meta-class is not a class. 
Meanwhile, there are various set theories that allow the construction of sets to continue far past what would otherwise be a perfectly acceptable universe of sets. For example, the Grothendieck universe concept is like this, or $H_{\kappa}$ for $\kappa$ inaccessible or even merely a worldly cardinal. Ackerman set theory also has this feature. 
For none of these theories is there a class of all classes, by essentially the same diagonal argument.
(Meanwhile, in Quine's New Foundations, there is a set of all sets, and the usual set-class distinction is less present.)
