I have the same problem with my little guy who is now 3. I have found that communicating with him and teaching communication consistently has slowly but surely worked. I sympathize with you... parents do look at you like you aren't doing enough or like you're a bad parent, but I really believe that some kids (and I will generalize and say boys) are more aggressive and have a harder time controlling it. In our case our son has had some sensory issues that cause frustration, but he also just seems to have a hard time with impulse control. He knows that hitting is wrong, but his frustration escalates so fast that he can't rationalize other behavior.
A few things that have worked for us are being aware of what his triggers are. When he's hungry or tired are not the times to take him places where he has to focus and be on his best behavior. When he does hit we keep it simple. "No hitting, Hitting hurts" and practice nice touches. We also talk about other ways to solve the problem and role play how to share how to use our words etc...
We make sure that he knows the expectations and consequences too. If we go into the grocery store and he wants to walk with the cart rather than ride, we tell him you have to stay with me and you can not pull things off the shelves. If you do that you have to ride in the cart. If that happens and he has to ride in the cart we reinforce with out punitive blaming... Calmly stating... Bobbie, you ran away from Mommy and now you have to ride in the cart." If he makes a scene about riding in the cart he gets a choice. You can stop acting out and ride in the cart or we can go sit in the car until you settle down. Many a time have I left my cart in the store to take my son to the car to cool out. I put him in his seat and I sit in mine and I tell him, "When you settle down and can behave in the store we can go back in." Inconvenient, yes, but I would rather do this that have a screaming tantrumming kid in my shopping cart while I frantically try to finish shopping.
We use the same approach when going to the park. Bobbie, we are going to the park. If you hit other children we will have to leave. And you have to be prepared to follow through every time.
I have doubts about the efficacy of time-outs especially in very young kids... sometimes it seems like the child can't cope and is feeling out of control and it doesn't make sense to me to place a child by themselves and expect them to figure it out. Sometimes kids are overstimulated and need help settling down.
My advice is to check our some of the books that have been suggested. I liked Setting Limits with your Strong -Willed Child and Playful Parenting. Figure out what suits your child's personality and do what works for you and your son. I have people in my life who think that I am not "hard enough" on my son for his behavior, but much of his aggression has come from the fact that he is very sensitive and doesn't know how to deal with those feelings.
Hang in there... as he learns to communicate and control his feelings more he'll grow out of some of it. You can help by being consistent and setting your expectations and also by controlling your own feelings and minimizing your reaction too.