A.B.
I don't think in your situation time outs or spanking are going to work. I recently read a book called "Einstein Never Used Flash Cards" that was comprised of a review of several social psychological studies conducted in the field of behavioral development of children. One of the studies that really spoke to me as a mother of two boys (3 and 1 years old) is that children do not start to truly empathize until age 4 or 5 - meaning that if you tell your 3 year old "ouch, that hurts me/baby/your friend" in his mind he is thinking "but it doesn't hurt me, so how can it hurt you?"
Using this insight I start to rephrase my scolding from "don't push Brother that hurts him" to "how does it make you feel if someone pushes you? How do you think it makes brother feel when you push him?"
This is done calmly and not in the heat of the moment so to speak. I also spend one-on-one time with my oldest when the baby is napping doing special crafts or snuggling up with him on the couch for stories or a movie for quiet time (he no longer naps - boo!). As my 1 year old has become more mobile and more able to get into his brother's toys there has been a surge of fighting - it's hard to share! I can't imagine what I would do if one of my neighbors came into my garage and started to walk out with some of my things in the spirit of sharing!!! For these times it depends on the toy - if it is something safe for baby I usually say he gets a 2 minute turn and then you can have it - the baby typically loses interest before then (as does the oldest!) if it is something unsafe (more of an issue when he was younger) then I will praise my oldest for pointing it out because it isn't safe for brother and I will take the toy away and tell the oldest that if he would like to play with it he needs to do so at the table or in his room so brother won't get hurt.
We also have special things that only my oldest can do right now like play dough (youngest eats it - yuck!) and painting (again with the eating!) as well as other crafts with small parts like googly eyes. I do try to do these while the baby is napping so he doesn't feel excluded but it does make the oldest feel special.
So given all that, do my boys always play peacefully and safely? Nope. preschoolers are notorious for their lack of impulse control so if baby is on something or in something older sib wants or has been scolded for before, you bet he is going to knock or pull that baby down! And this happens even when I'm sitting right next to them - sometimes those buggers are just so fast. But they love each other and soon all is forgiven - like everything else parents do, we have to teach our children how to be good siblings. It's probably the hardest thing since it isn't like teaching the paradigm of play dates because that younger sibling is constantly there and the most important thing in their lives - you (or DH) - no longer has their undivided attention.
Also, I think that everything you are describing is completely age appropriate for your son. My oldest will be 4 in September and it is remarkable how much he has "matured" over the last few months. I'm pretty sure you don't have a "Good Son" situation! Anyway, hope my rambling helps you out and congrats on having two boys - makes life that much crazier, doesn't it?