There are two possibilities here:
1. Have you considered that maybe the superstar programmer might really be pretty smart? The other person is obviously acting this way because he feels that you don't recognize his talents. And he might actually be correct.
2. Of course the other possibility is that the other programmer is genuinely an idiot who just wants to look smart. If that's the case, why does he still work for you? You're an architect, so I'd assume you have some pull with management on the subject. If not, have you considered that maybe the "superstar" isn't really the problem?
Here's what I would suggest. First of all, listen to the kid. And I mean listen to him honestly. Don't just let him talk and then smile and nod. The kid can probably tell pretty easily tell when you're doing that. You'd be surprised at what this can accomplish.
Secondly, realize that the kid might actually be trying to help. It isn't an excuse for him to act the way he has been, but it would mean that he might deserve a little bit more patience on your part.
Thirdly, it's obvious that the "superstar" has a different personality than you. Rather than fighting it, why not recognize that these kinds of differences are good? The "superstar" probably thinks differently than you, therefore he probably has strengths you don't. If that's genuinely not the case, why did you spend the time writing this blog post rather than an email to his manager?
It's tempting to react negatively to people that are different than you. I know, I've been there. In fact the "superstar" is probably undergoing the same thing. But it sounds like you are more experienced than him. It's your duty to be the one to help him to rise above these issues, and how can you do that when you're doing the exact same thing as him?