I definitely agree that you need to be firm and stern. Meanness is not necessary. I think it is actually a benefit that you are soft-spoken, because if you do effectively assert your authority with him, consistently and remain your soft self, he will respect people regardless of their first impression. Especially important for a boy who will become someone's partner/employee/lover/father someday.
I had this issue with my daughter when she was about 4. Our family therapist suggested the following: She said I was telling Jayna what to do but I was not following through and I wasn't consistent, and I was not clear about consequences. And she gave me a plan, and made me promise NOT to give in, at least for one week. She assured me that if I did this plan, I would not need to give in again. And she was right.
We use time out, but with a warning system. If Jayna is for example, standing on the sofa (against the rules in our house), I tell her, sit down Jayna. This is warning one. If she sits down and behaves, that's the end of it. If she remains defiant, the I repeat, "Sit down, warning two." If I have to say "warning three," that's it--she goes to time out and stays there for an appropriate period of time. If she remains defiant in her room, I add one minute to the preset time out for each outburst, again using the warning system. If by the third warning she is not settled down, she is in her room indefinitely until she calms down, and she has to go to bed a half-hour early.
The key here is to be consistent, so that everytime you have to say "warning three" the consequence is put in place. This gives the child an opportunity to weigh the options and make a good choice. ALWAYS MAKE THE CONSEQUENCES CLEAR. In other words, "Warning one, Jayna: get down or go to time out (or early beditme or whatever. Make the consequence something that will cramp their style). If Jayna makes a good choice, I always respond positively (verbally, not with treats). Good behavior is its own reward.
Kids at this age are looking to see how big the container is in which they operate. They are pushing out at the sides of the container to see how close the boundaries are, to see what the limits are, and to see how safe they are. They need to know how to contain themselves. Acting out like this is a concrete way for them to figure this out. They won't ask you 'mom, how bad can I be and get away with it?' They just act it out and see it as reality. If they know that YOU are in charge of the container and keeping them safe in it, then they will always come to you to test the boundaries. It is a gift, and a huge responsibility.
A word of caution: Take care of this now. Before he gets to school, before he becomes an adolescent. My in-laws have a son who behaved much like yours as a child and now, because they did NOT deal with him early on, he is a predatory kid. He doesn't respect any kind of authority, and is constantly in trouble at school. I don't mean to scare you, exactly, but we all want the best for our children and it helps to have some foresight. Doing our best for our kids often requires making some very unpopular choices (in the kids' eyes), which are necessary for their safety and their development as effective, worthwhile members of society.
Sheesh, I realize I just wrote a TON on this subject, and I hope it helps. And BTW, I'm NOT for corporeal punishment except in extreme incidents where the child is needing to be brought out of a frantic, tantrum like state. Not for punishment, since it works against you. If you want your kids to come to you in times of need, rather than go to their mostly inexperienced friends or make decisions that they are not mature enough to make without consulting their parents, do not scare them with physical violence. Very bad idea. Would you trust someone who hits you?
Good luck, K.! I can tell you are a thoughtful, kind and wise mom. Oh, and have a third...but AFTER you get your son evened out ;-) There's some inspiration for you! He'll be a better big bro in the end...
Namaste,
S.