ds has turned into a thug - advice please?

He's 2.4yrs and a pretty big boy for his age. He's always had a tendency to be a bit rough with other kids but I've always put that down to not knowing his own strength etc...however, recently he's just been downright nasty. He attacked a 5 year old(!) the other day by sitting on his back and yanking his ears up - I was bloody mortified and completely lost it. He got a smack for that one - and he never gets smacked. I felt awful afterwards.

We go to a music class and I spent the morning chasing him around, telling him off for pushing other kids around. I do the whole naughty step bit but it's having no effect as yet. He knows that all he has to do to get off it is to sit there quietly until I come back to get him, then he stands up and says 'sorry'. And promptly runs off and repeats the bad behaviour!

I know it probably sounds petty but it's really getting to me now. My mum called earlier to see how I was and I just burst into tears. He goes to a creche 3 mornings a week and is an angel. Just seems that when I'm there he plays up.

What can I do to get the message through that he can't go around hurting others? He hits me and dh too when we tell him 'no'. I just find myself losing my temper with him more and more, and I don't want to be like that.

thanks for your replies, I know that lots of parents go through this - I just don't want to end up on Little Angels! We've just spent an ok afternoon together...it's when there's other children about he's a nightmare. He'll push babies over too, like he's showing he's the big kid and 'in charge' - but because he's the same size as many 3 year olds, he pushes them about too.

I'm so fed up being the mum who's running after him, telling him off the whole time, and all the other children are so well behaved! I feel like everyone's watching ME to see if I'm handling him properly..and I don't feel like I am, most of the time.