I can to some extent understand your situation. I have two children who have at times displayed quite challenging (=physically violent) behaviour at home (though thankfully not at school) and there have certainly been times when I have wondered if I was physically going to be able to handle them. I have also had good reason to believe that there were other reasons than mere naughtiness or poor parenting involved. And for some bizarre reason my ds also seems to feel that his identity is tied up with his hair.
These are things that have worked for me:
told ds from the outset that while I don't mind about his hairstyle (below shoulder length), there is a chance that the school will one day decide that they do and that if this happens, then I will be backing the school
made it very clear to dcs that I am not interested in what other children get away with- if they get told off, I am not going to want to hear about some other child who happened to elude the teacher's vigilance (one of my mantras over the years is "well I am not parenting
picked my battles carefully- but only before I engage: once I have told them that something has to be done I do not back down. This is precisely what picking battles means: you do not engage in an argument if you do not intend to win, but once you are in, you have to see it through
never offered bribes- bribes are the opposite of picking your battles!
told them quite frankly (as seeker suggested in an earlier post) that though I may not always agree with the school, I will support their authority unless they are seriously in the wrong
In the present case, I think what I would have done would have been to have made BIL come over and sort out the haircut. The TORR is not really a good solution as that just enables him to keep his haircut and feel like a hard case: it damages you far more than it damages him.