What do you call a person who does not go out with his friends because he thinks he is superior to them?
I think the word you may be looking for is aloof, meaning "not friendly or forthcoming; cool and distant". [Websters]
Although James had many friends, he remained aloof from them and hardly ever socialized with them.
Edited to add: The word also carries the connotation of supercilious, which means "behaving or looking as though one thinks one is superior to others".
You could also simply say:
James remained aloof from his friends.
Title of this question was a bit misleading. First thing that came to mind was that the person was introvert or even somehow socially constrained. If you are sure that the reason for this is that he thinks he is superior to his friends, he might be "snob" ( as Hellion already said ), "pretentious" or "haughty".
However as someone who prefers to stay home instead of going out with my friends, I'd like to point out that it is not necessarily person being smug, but merely one that avoids crowds, possibly a "homebody" in a good sense.
That's a very specific question. I am unaware of a word that means exactly that. You would have to say something like:
He doesn't go out with his friends because he thinks they're beneath him.
There are a couple of words/phrases referring to someone who doesn't go out much: stick-in-the-mud, and stay-at-home, but these are general terms.
See if this is of any help to you. hubristic is what I think I'd use...
Elitist doesn't quite cover all the bases (e.g., it doesn't necessarily imply that someone won't go out with his friends), but that's what I might call someone who refuses to go out with people who are "beneath" him. It works well alongside snob (as Hellion and user4395 mentioned).
Perhaps one could riff off the idea of social stratification to create a new word/phrase, although they'd have to explain what they meant as soon as they used the term.