Patience is the key. Sounds like completely normal behaviour for his age to me.
I agree that hitting is a ridiculous concept... we're trying to teach them NOT to hit, how do we do that by hitting them? That's just crazy.
My boy was 3 in December, and has had a couple of horrid stages between 2 and now. Sometimes the stages feel like they're going on forever and ever but they do eventually come to an end.
For me the key is to treat him like a person, get down to his level, talk to him, explain things to him, tell him why his behaviour isn't appropriate, decide on a FAIR punishment if the behaviour continues and follow through with it. As for tantrums, I always start out a tantrum telling him it's ok to be upset, to calm down and come to me when he's ready and I would comfort him, and then let him go for broke. Just ignore it all together. Make sure they're in a space where they can't do damage to themselves or anything important and just let them go. It's far less stressful to go sit down and breath and wait for them to come to you. Obviously this is hard if you're out and about or trying to GET out and about... we're a very very busy family and are out more often than not, but you just have to adapt really!
The most important thing to remember is that you're not alone. Most 2-4 year olds behave this way, you're not a terrible parent who's made your child act like this, and he's not a terrible child just trying to push your buttons. He's just acting his age. Good luck!