Well, it sounds to me like you need to read up on Positive Discipline.Check out the "how to talk so your kids will listen" book.
The more you "discipline", the more they try to exert control.
You need to start encouraging and suggesting positive behaviors. When he engages in hitting, whatnot, you need to say "we don't hit" and then put him in a TO. Afterwards, have a talk about hitting. Get the "hands are not for hitting book." The key to everything is being consistent and not showing negative emotion. You can explain that it hurts mommy when you hit and makes you anger or sad or whatever, but don't show strong emotion, or he will do it just to push your buttons.
With my 2.5 year old that likes to bite her little brother, she doesn't get to see our neighbor's color lights at night. So take something away. Do you let him have juice? Stop giving it to him of he does X. He is old enough to learn about consequences.
Get yourself a day off from your kid, and then start with the new plan. In this plan, there is no yelling, no saying NO, and at every corner you SHOWER your child with love.
And have lots of "discussions" about why we don't hit, etc. If he keeps it up, then put him in his room and tell him that he cannot come out until he is willing to cooperate. When he will cooperate, then you will have a discussion about what it is that he wants, etc.