My son is 4 and we had almost the same experience with him at school (and sometimes at home) up until a month or so ago. We took him to a behavioral psychologist and with his help and a lot of team work between myself and the teachers we were able to help him get back on track. I would suggest going to see someone with him if you can, it not only helped my son but helped me also. I was always wondering, "what am I doing wrong".
A few things that we did were:
Started a chart system at school. Every day the teacher would make a chart with the five different activities they did at school. Flag, Circle time, Bathroom, Snack and then the activity of the day (music, library, sports etc) He would then get to draw a happy face next to whichever activity he was good for. (they drew pictures for him so he would understand) Even one happy face in the beginning got him A LOT of praise from the teachers and myself. We would talk about how many happy faces he was going to get at school that day and then at the end of the day we would talk about what he did "right" to get the happy faces and what he could do better during the other times to earn him a happy face. When we finally were at 3 happy faces (took a long time!) we talked about the reward he would get for bringing home 5. (a new sticker, a toy from the dollar store etc.) When he finally reached 5 happy faces he would get a reward every day he brought home 5. When he was consistently getting 5 happy faces, we made a chart at home. When he collected 5 happy faces for three days, he would then get his reward. When that started to happen consistently, we made a chart for 5 days of happy faces and then slowly started to faze out the reward system. I was a little concerned that we were bribing him to be good but the psychologist said that it was fine and that eventually the bribes would go away but the behavior would stay. I know that some people (including his teacher) did not like the "bribing" but I have to say, it really worked.
Also, we started giving him choices. Worded very carefully. Always lead with the positive. At school they would say, If you sit with the class at circle time, you can have a fun time with your friends. But if you (get up, throw things, hit, whatever) then you have to sit at the table and can't have fun. Which choice would you like. He really took to that. I feel like he felt in control and he could clearly see that it was his choice to have fun with the group or misbehave and not be able to have fun.
I know how difficult it must be for you to see your intelligent, beautiful little boy having such a difficult time. And I too understand what it's like to cringe every time you get a call from the school. I really hope it gets better for you and if you want anymore details on what we did to help our son, please let me know.
Good luck! Hugs!!!
PS. We also decided to hold him back one more year because partially we believe it's a maturity issue. Just a thought....