C.M.
First, take a deep breath..... As a mother of 5 sons ranging from 9 years to 21 months, I can relate. Below are some of our most useful tricks we've found over the years, and our average result time. Hopefully, they will work for you too. Overall, consistency with whatever method you choose to use will be the ultimate factor....
1. Shopping trips-Let him sit in the seat part of the shopping cart. If he wants down, he is told he has to stay with mommy and daddy or he goes back in. One step away, back into the cart. (1 day to 3 months was all it took for all 5 to figure it out)
2. Running off into roads, water, etc. I know it sounds mean, but the backpack harness worked like a charm for us. They get to wear it every time you go out, and it doesn't come off until learn to stay with you, or you are back in the house (2 weeks at most for all 5)
3. Feeding. Our biggest problem has always been too much in thier mouths at a time. Refusing to obey table rules results in a time-out away from the table for about 2 minutes (1 min. per year.) Small amounts of food at a time help, and for our kids, being a "big boy" and eating with the rest of the family was a HUGE incentive (6 months, on average)
4. Temper tantrums Let him have it out. Do not lead him to believe you are paying him any attention (obviously while still watching to make sure he is ok). As a general rule for almost all kids I know, when they realize that nobody is giving them attention for the tantrum, it just doesn't seem worth doing anymore. Time outs are a great way to follow up and gives you a nice quiet time to catch your breath, and be able to explain the rules again. Picking up a cheap kids chair that is always the "time out chair" helps too-tried and true by my grandparents, my parents, and me. If they REFUSE to stay put, his bedroom with a baby gate in front so you can see him, without him being able to run off, makes a great alternative. (3mos -1 year depending on child).
I know some of these time frames may seem a little long, but remember that every child is different. Stick with it, and keep looking for what will work best for your family. Best of luck =)
~Mom of 5