I have an almost two year old who is so like your son. I try to confine him to the pram when we go out so that he doesn't run away. If I let him out he runs, and runs and runs - usually to the back of shops or out doors. It is awful because I can't look around at the shops anymore as it is just too painful and embaressing.
My boy used to scream and carry on every time we went walking past the park. I have set a pattern whereby I tell him before we get there that "we are/or are not going to the park today because you have been good/bad". This usually works. Same goes for the rides at the shops. When he's been good I let him go on the ride (without putting the money in usually) or if he's been naughty I say "no, you've been naughty".
I hope things get better for you but if you are still upset, ring the Tresillian Parent Help Line, they have given me lots of practical advice along the way. The ladies there are so caring and really empathise with you. They may even suggest you come in for a visit.
Best of luck!