I'm not diagnosing your child, but when I read your post, it made me think of myself and the toddler years with my oldest who was just like this. Until I found out he had ADHD many years later, I all on my own came to realize that there were some places, people, things, and situations I had to avoid for his safety and my sanity, because of his temperament.
For some kids, books like Love and Logic work. For others it doesn't, because you may not be dealing with a discipline issue. There is a possibility he may not be acting out in defiance for the sake of defiance but may truly not be able to read cues from you that his behavior is unsafe.
With my son, I would plan very carefully where we'd have playdates, with who, etc. ahead of time to cut down on situations like this. You may have to limit playdates with certain kids to a fenced backyard until he's much older instead of the park. You may have to keep him strapped in a stroller when shopping or running errands and avoid events that are too stimulating or places that are too wide open or crowded. You may have to leave him with grandma or dad when it's time to grocery shop or only go out after naps because he needs them to be calm.
Bottomline, *you* may have to resolve to change how *you* react to his behavior and focus more on what activities and situations will be the most beneficial and enjoyable for the both of you, so that you can have more peace and control handling various situations. Even if it turns out he has something going on that is causing this behavior, I can assure you things DO get better.
When he is older and able to discern dangerous situations and get a better grasp of his feelings and emotions, you will be able to do more with him and he'll be better behaved. But right now, you may have to become more discerning and aware of how you and your son spend your time, with whom, and where so that you can be more at peace and avoid frustration. Whatever you do, avoid getting to wrapped up in the idea that this can be fixed with a discipline book. For some that works. For others it's a matter of changing how you the parent approach things and think about them. And sometimes it may even entail simple changes to how you do things everyday. No two parents have the same parenting experience as there are no two children who are the same. We have to give ourselves the freedom and versatility to adapt so that we can help our children as much as ourselves to be a happy family.
With that said, you're probably not doing anything wrong. Give yourself a break. Small kids are no easy task. Especially if you have an extra spirited child for whatever reason.
After making the mistake of listening to well-meaning family and friends, and constantly comparing my kids and my parenting style to those of my friends, I finally got smart and I read a book that helped me ALOT in dealing with his way of coping and behaving in the world. It is not a discipline book, nor a parenting book in the traditional sense, but it sure offers a whole heck of alot of common sense for parents of kids like ours.
Read "Raising your highly spirited child" and "Sleepless in America" by Mary Sheedy Kurcinka and any of her other fantastic books. Kurcinka also has a fantastic blog/website too. You'll be glad you did and will come away with some good coping and management skills and a new outlook at parenting.
See:
http://parentchildhelp.com/
http://www.amazon.com/Raising-Your-Spirited-Child-Rev/dp/...
Hope this helps.