You have to wait till he's 4!
DS was a terrible 3 year old as well, I longed for the 2's!
A few things helped. Tigana's idea of enthusiam, tis very good.
Also, he hated shouting so I stopped shouting from frustration and used it as the punishment, so I'd warn him if he didn't do so and so then I would shout at him. He also liked his freedom at that age so I would warn him that I would have to hold his hand, or pick him up and carry him.
As the 3's wore on being a Big Boy became important, so in casual conversation it helped to talk about what Big Boys do so then it can be referred back to. Lots of praise for being a Big Boy and Wow Doing It All By Yourself!
Giving two options, the one you want, and one they would (hopefully) find worse, but that you are able to do there and then. Like you can get in the car or we can stand here and do nothing all day
Also it helps if you can see this from his point of view. So what is distracting him? Can you talk to him about it and so he's fulfilled and can move on. If he's having a good time was there sufficient warning it would stop? Does he think what is coming next isn't enjoyable and is there any way to make it so?
Of course I've said all this, but it's not a guide! It might help you keep your sanity! Truly the only thing that has definitely worked with ds is getting older. In fact I marvelled at him this morning as I told him we had to leave the toy shop and he just left! No asking for more time, no asking me to buy him anything, no tantrums, no attempts at bargaining! I was amazed.