Most of your questions are addressed in my collection of favorite tips for dealing with toddlers:
1. When he wants something, empathize, big time, and in his language. I love the advice of Dr. Harvey Karp on how to get on a tantruming toddler's wavelength in this and several related videos: http://www.youtube.com/watch?v=G6KnVPUdEgQ&feature=re... . Once your little guy realizes you do care about what he wants, he's more likely to be able to calm down and cooperate with what you need from him. Many, many parents have seen amazing changes for the better when trying this approach.
2. There are lots of positive ways to approach discipline (which actually means teaching, and not punishment), rather than just saying no and assigning consequences. Kids hear NO! often, and they can become terribly frustrated. So look for ways of finding a mutual "yes," and do your best to save "no" for those occasions when children are trying something dangerous. Instead of "Put that remote down!" for example, try "Here, play with this (dead) cell phone!" There will also be times when you must have cooperation, like diapering or trips to the store, so keep a special toy or distraction that he gets to play with only at those times.
3. Keep it playful, and keep it respectful. Children learn primarily through play and imitation. You may need help with this if your parents didn't model a lighthearted and kind approach when you were little. The book Playful Parenting is a great resource. Your son's sense of humor is developing now. (Also be aware that some "behaviors" like overhand throwing/hitting are a natural activity for kids, a form of play that is programmed into them for the purpose of developing brain/body connections. Find plenty of "acceptable" outlets for those repeating behaviors. When he tries to hit you, say, "You feel mad. That's okay – here, let's go hit this pillow!")
4. Here's a big one: give advance notice when you'll want him to be doing anything differently, especially when he's grooving on some activity/play. Children absolutely hate unexpected transitions. With my grandson, we tried to let him know at least a couple of times that a change is coming ("We're going to go to the store / have lunch / take a nap pretty soon." … and then a second or even third alert before making the change.)
5. Whatever the next activity is, make it sound as desirable as possible. Give some detail about the ride in the car, or a favorite food at lunch, or sweet snuggles before nap. Be positive and enthusiastic. And be calm. Desperation will show, and even though he's too young to deliberately engage in a planned power struggle, he will quite naturally sense any cracks in your resolve. And this is where future power struggles truly can begin.
6. Learn his limits. Try to keep demands low when he's tired, over-managed, hungry, or sick. He won't have any emotional reserves left with which to cooperate.
7. Get to know his most likely trouble-spots, and plan ahead. For many kids, it's when they want some temptation they've seen. So keep those things out of sight when possible. Be prepared with a distraction – for example, another toy he likes when you have to take some fascinating object away, or a healthy treat when he wants a sweet snack. Laughter, introducing a new game, a few twirls and bounces, hugs or tickles, a goofy song, can help break into his determination to get something he wants (that short attention span is both a curse and a blessing). And positive strokes are worth a lot to a child.
8. Avoid bribes, but let him work toward occasional rewards. Don't try to buy cooperation with "IF you'll do X, we'll let you have Y." Instead, phrase it as if he gets to assist in advancing something good for himself: "Hey, as soon as you help me get X done, then we get to do Y." It sounds like a small distinction, but it's important. It gives the child a chance to cooperate in what feels like choice, even when there's no "if" about it.
9. Encourage lots and lots of physical activity during the day. Time outdoors in nature is calming for most children. If he has pent-up energy, it will have to come out some way, and unless channeled in a positive direction, it will likely to add to both your stress and his.
10. Limit TV time – the passive receptivity to all that fast editing seriously interferes with children's normal brainwave patterns, making focus, cooperative behavior, and engagement in the "real" world more difficult. TV can put a young child into an altered state from which they have trouble emerging, and negative behavior can occur during that struggle.
11. Whatever you are trying to teach will need to be repeated hundreds of times over the next few years. That's completely normal (even adults need to hear things several times to "get" it). Attention spans and impulse control are extremely limited in toddlers, and the areas of the brain where those connections are being made develop only gradually during the toddler years.
12. Spanking, time-outs, and depriving of toys or privileges don't work for every kid, and will sometimes actually backfire over time. (Many parents on this site complain that their kids have just stopped seeming to care about any form of punishment.) Children may be annoyed, scared, shocked, or shamed into compliance, but behaving for the sake of avoiding discomfort is NOT the same thing as developing an internalized sense of "good." Consistent, calm guidance and modeling what you DO want from him will work better in the long run than punishing for what you DON'T want him to do. See more on this by googling The Science of Parenting or Emotion Coaching.
13. Pay attention to what you love and appreciate about your son, and make sure he knows. Treat him with calm and respectful authority. Children crave attention and approval, and if he knows you're noticing his good moments, he'll try to create more of them.
14. Be open to learning new things about your little boy daily, even hourly. Often, what we think or assume is going on in that little head gets in the way of noticing what is actually going on for him. Adult concepts like "power struggle" of "defiance" are often, for a child, simply ways of expressing real needs.
I wish you well. Enjoy your little boy – this is a challenging AND rewarding age!