I agree with the others, consistancy with taking him aside every single time, whether getting on his level & talking to him (they understand a LOT more than we think!!!!) or putting him in a pack n play for a minute (with my daughter, who is 2 & beats up on her big brothers, I set her on her bed and count to five and then we talk). Maybe try putting a positive spin on his hands - "thats not a nice thing to do with your hands, let me show you some nice things to do with your hands. We can shake hands, we can hug, we can give five" etc. Loved this technique when my boys were preschoolers (only I made them tell me what were better ways to use their hands, feet, etc)
It will pass, I know it seems impossible now. My 2nd son did not like my 3rd at all and I had to constantly be right there or I would find the baby being sat on, etc.
They really do test limits around that age, it is so frustrating!!!!!!!