Both my boys developed issues like this at about that age. (My younger one is just two and is going through a pinching and scratching phase). We are consistant about stopping the behavior, which is really demanding for Mom. It's hard to stop everything every twenty minutes to redirect a willful child, but it works well for us. We also emphasize 'gentle touch' reinforcement. You take your child's hand and show how to gently touch you, or the cat, or another child, or even his toys.
I'm not a fan of time-outs, but I do use them occasionally. What works better for us is a time-in. I hold the offending child on my lap until he relaxes. Sometimes this is a huge struggle, and I never do it at the expense of my child's dignity. If he's unable to calm down, he goes to a short time-out to get control. Usually the attention from Mama calms them quickly. Then I explain that his behavior was a no-no, show him the gentle touch and ask him to repeat 'no scratching'. When he is in control of his body and the behavior pattern is broken, he goes to apologise to whomever he hurt.
We do, however use time-outs with toys. If a child uses a toy inappropriately, I remove it and explain that this toy is taking a time-out because it was helping to do a no-no.
I LOVE the idea of removing toys that the prior poster suggested! We're making a sad-face bag today! I also love your technique of encouraging kind behavior. My three-year-old is definately big enough to understand the impact of this, and I'll try it!