Hi S.,
I think you have gotten some great advice (although spanking a child or throwing water on them looks and sounds like "out of control parent" to me.
In my experience, "NO" is very ineffective and teaches toddlers to go around saying "NO" and telling their parents "NO". It works much better to say in a firm voice "Gentle hands please, or hands are not for hitting, if you do it again, then you will have a time out". Time outs only work if they are used 100% of the time. I have given my daughter time outs in the grocery store, Target, the church nursery and wherever else she misbehaves. It's inconvenient at times, but neccesary to drive home the fact that the behavior is inappropriate no matter where we are.
Like someone else wrote, much of a 2 year olds frustration comes from not be able to express their feelings and wanting power and control.
I haven't seen anyone mention that it really helps to anticipate the "triggers" and head them off before he gets frustrated. This includes taking care of his needs while running errands- don't let him get too hungry (bring snacks), bored (play games like "what does the cow say", sing, etc while shopping- embarrassing maybe, but less so than a screaming out of control child). Shop at the time of day when he is at his best, most rested self. Tell him what you are doing and the kind of behavior you expect, warn him before it's time to go, etc. If you are shopping and plan to buy him something, you can use it as incentive for good behavior. If you don't plan to buy him something, make sure to tell him that from the start- "We are shopping for groceries today and will not be buying any toys"- and then stick to it and always praise heavily if you have had a smooth experience, "You were a really terrific shopper, helper, etc." I will also tell my daughter, "Thank you for being so patient, I know this is taking a long time...".
I have a friend whose 3 year old would scream and cry when leaving a play date. She would say, "Your screaming and crying makes me think you didn't have a good time. If you want to do this again, then you need to show me you had fun. Let's talk about what a fun time it was. What did you like best..". With my daughter I have said, "I know it's hard to leave when you are having such a good time, but it's time to say goodbye now. We will come back again".
If you stay calm and in control, it is reassuring to them when they feel out of control. Be consistent and you will get through this.
By the way, I have a step-son who is twelve. Not a lot of difference in the way two year-olds and twelve year olds tantrum. Get your practice in now and stop the hitting now and you'll be ready for the middle school years :)