2 nice things about 5 minute time-outs:
1. It can be (and has been) done in a grocery store. You can do this just about anywhere.
2. I don't get approached by some childless busybody irate because I was hitting my child.
Again, consistency is key. If I have to give him a timeout in the middle of a restaurant, I will (though he does tend to cry and fuss, so out of consideration for other patrons, I take him outside or something to keep him from bothering them). So yeah, if you're consistent with punishment, it often gets to the point where the
threat of punishment is enough, as in "James, keep it up and you're getting 5 minutes.". This is sometimes enough to put him back in line, which is really convenient in public situations. If not, well, he gets the 5 minutes.
How do I know this works? Last weekend I flew with him to Tucson and back. Both trips I was approached by total strangers wanting to tell me I had a very well-behaved kid. I *really* like that.