deutsch, I've watched a generation of kids grow up and have seen boys like this - and in my observation they don't get any better unless you take VERY swift and sure measures to make them stop it.
The only way to stop this is to absolutely not tolerate it. When he does this, yank him up IMMEDIATELY and take him home to spend time in his room. Act angry and cold. (No physical or emotional abuse). Yank him up, grab your stuff and announce that you have to leave because ______ hasn't learned how to behave.
You need to speak to him about this ahead of time, and warn him. Just say sometimes you're so sweet and loving and you really touch my heart but other times you hurt other people on purpose, and I'm not going to put up with that anymore. When you do that, I'm going to grab you and take you home RIGHT THEN and you'll have to spend the afternoon in your room.
You also will want to tell your friends this is your plan, and let me tell you, they'll applaud you. They will be behind this 100% and will help you out and support you.
I have two friends - both with children who really sound EXACTLY like your son. One kept making her son apologize, we don't hurt our friends, bla bla bla, the other decided to yank him up, and take him home after the first incident of unjustified violence or acting out. One is headed for prison with 2 DWIs and drug possession and felony theft, and one is an adorable teenager that everyone likes.
This really does work.
Best wishes.
so impulsive
I think the above is your "key" words in the posting. I really do not get the dynamics of your situation - just bumping up your post in the hopes that someone else might be able to relate to your issue. All the best ....