All three of my children work above grade level with genius IQs. We homeschool, now, but when my oldest was in 2nd grade, we dealt with the same issues you are having now. Because she was coming home emotionally upset every day, I finally decided to take her to a counselor who specializes in self-esteem problems. I realized that we weren't going to change her personality or her intelligence, and, just like if she had a physical "abnormality" that made her feel like an outsider, we needed to get a handle on how to help her feel GOOD ABOUT HERSELF.
We discovered that we needed to get her teachers on board with not having her "help" other kids, as this alienated her from some of the students. Also, we started encouraging all kinds of playdates- even arranged a class trip to see a movie for her birthday. We had to help her seem more "normal", because she already had the stigma of being NOT. Honestly, we didn't have to try hard, at that age, kids move on pretty quickly, we just had to acknowledge that our daughter needed some help knowing how to relax and just BE.
In no way do I mean that your son should hide his talents or not be true to himself!!! My daughter's friends KNOW she's really smart. But just not flaunting it, learning to "fit in", and not pushing the maturity expectations because the intelligence is high, all helped her. My kids all have friends at different levels than they- some are brighter and "get it", others are just their pals, and my kids can and do just have a good time. It's important that your son learn to adapt/adjust when necessary, but he can still feel ok about who he IS.
Also, as they get older, you may find that many of the kids who don't understand him now will catch up in the next couple of years. He will likely find one or two kids on his real level, but he may need help with learning how to connect.
If you are changing schools, I suggest you have a talk with the new teacher, and make sure that she/he is aware of your concerns. It's important that she encourages your son, without making him "different" from the other kids. This is where a therapist might be a help, as some teachers don't know how to do that, either. Also, make "nerd", "geek", etc., off limits for now. We had to stop the obsessive worry about what other people might think, and I had to forbid my daughter from focusing on those negative-sounding words, since SHE thought they were bad. Again, a counselor helped us with this.
As I said, we homeschool now. It got to the point where my 2 oldest daughters were working at 3 grade levels above her own, and an advanced classroom situation wasn't working with age/maturity levels. But all of my kids are on Sports teams, take music and theater classes, and do Summer camp, etc. We still work the "self-esteem program" for all of them. They are happy, they like themselves, and are fun to be around.
Good luck!
Updated