My son is 3.5... and he's started doing that too sometimes... and he uses his Daddy's "big" voice when he does it... to sound more intimidating. (I laugh to myself when he does that).
But at least he does not hit.
I put my little dude in time-out... because for "him" it does work more than it does for his sister, which for my daughter it does not work at all.
Next, I like this book: "Have a New Kid By Friday" by Leman. Really great applicable tips/suggestions and it is not punitive and it is not 'mean.' It is actually very useful... and it does work.
You can get it from Amazon or even E-bay.
Its a phase... but still, you have to delineate boundaries/limits to it.
Next, how does he communicate? Is he aware that he can express himself verbally? Is he allowed to do that? Is he 'heard' and also respected?
Can you tell him "redo that..." and then give him another chance at making something more appropriate? I do that with my kids... and it teaches them problem solving skills... because they can 'redo' what they just did wrong. And I "allow" them to. Remember.... kids are very impulsive and can't always control every.single.thing.they.do. Sometimes, my daughter will do something (not thinking it out) and then will immediately say "SORRY Mommy, I didn't mean that... I was just distracted and didn't mean to say it that way..." and then too, I don't just jump the gun Immediately and "scold" or admonish my kids... I usually pause, look at them... and gauge it out real quickly... then I say "Redo that...." and I allow them to, to "try their best...." because I know they know how.... per their age.
You said your son acts up when he does not get his way. Okay so that is most kids and teenagers. But so... before you tell him 'no' to something... do you give him options? Or, do you OVER explain what he can't do? After 3 seconds, a toddler is not going to really listen to our whole diatribe about why & what they can't do. All they 'hear' is that they cannot do a.n.y.t.H.i.n.g at all. They get irked.
Or, put on an egg-timer... and tell him "okay, scream. Go ahead. I will give you 1 minute....to get it out." Then turn on the timer. Then let him get it out. I have done that to my kids too.. .and they get shocked that I "let" them scream it out. But it works. Then often, they find they didn't 'have to' yell anyway.
anyway, just some ideas,
all the best,
Susan