L.,
I don't know about the why's of what he's doing, but it sound like you both need to have some voice training put in place ASAP. My kids are 2 and 5 1/2 and as soon as they could walk we started with the "listen to Mom/Dad or you don't get your freedom to walk".
Being preggo and due soon will make it a little harder, but it should still work, especially if you get your husband in on the same page as you. When walking in the the parking lot it's: hold a hand or you get carried. In the store it's: stay with Mom/Dad or you ride in the shopping cart. Or, listen to Mom/Dad when we say __________ or you ride in the cart.
In an amazingly short time both my kids learned that they didn't like riding in the cart, so they listen. My daughter doesn't like holding hands, but she will hold a pocket and that's a compromise I'm ok with because she's actually closer to me that way than holding my hand.
We also do red light/green light with my older son. Red means stop, yellow means walk, green means he can run, purple means come back (he chose the color) and blue light means start giggling and laughing while running cause Daddy's coming to get you. My daughter follows this as well, just not as consistently.
Please, please, please!! don't get one of those stupid kid leashes with the cutesy animal backpack. I think they are demeaning for the child (they're on a leash like a dog) and scream at me that the parents don't have time to actually work with their kids or pay attention to them. Teaching my kids very often resembles dog training, with a lot of Sit! Stay! kind of commands involved.
Be firm and consistent from moment to moment, and also between you and your hubby and you little guy will do what you ask like a champ.
Hope this helps,
Melissa