I feel so sorry for him. Poor little soul.
My 12 yr old DS is also struggling.
Re the friends, this can change as quickly as the wind; he may be totally fine when he comes home today.
As he is probably not seeing things realistically just now (like all those negatives he can reel off, his hair looks wrong , etc) so I don't see how you can rationalise with these perceptions. You can tell him all day long how his hair looks just the same as it did yesterday, or that he has misinterpreted his friends' comments, etc, but he's unlikely to take it seriously, is he?
So maybe if you could do things obliquely -I find a sideways approach often works, as my DS doesn't like the head-on approach.
So offer him praise (but not over the top) for something he does well, or for some part of his appearance that is especially nice. Lots of TLC, nice food, small treats. Just things to make him feel nice and valued. Boost his confidence but do it subtly, and maybe he will be a bit more resilient to the snubbing or bad hair day. Snuggle up with a TV programme you both like, with hot chocolate or whatever you have as a treat.
BTW, is he tired? Tiredness is dreadful for lowering mood. Also consider iron supplements or iron rich foods as anaemia is also implicated with low mood.
maybe a book on puberty to explain the hormonal stuff, so he can understand why he is feeling so down (if that is relevant?).
Then, after you have thought about the immediate stuff -why might he be feeling like this? Is it age related? Has someone said something? (if his friends are really snubbing him that will knock his confidence.)
Good luck, and I hope you get more and better suggestions from other posters. I send a cuddle to your DS.