deal to antsy.
He doesn't understand consequences yet? Whatever gave you that idea?
It sounds like you're being too nice. I'm not suggesting that you need to spank him, but I think that you do need to have more structure and discipline. You might consider trying the Super Nanny technique - have you seen it? The technique she uses is almost *identical* to the technique we used when I worked with insbreastutionalized kids with MR and behavioral disorders, and it really works (and it's non-violent).
When he does something wrong, let's imagine for a moment that he is getting into the knife drawer, you get down ON HIS LEVEL, you make EYE CONTACT, and you say, "Son, it is dangerous to get into that drawer because there are sharp things in there. You could get hurt. If you get into that drawer again, you will have a time out." Then you redirect him, "Let's go over here and play blocks..."
The problem a lot of parents-teachers run into with redirection is that they redirect without saying WHY. It's not enough to see him in the knife drawer and say, "Let's play blocks..." He will never learn that the knife drawer is wrong-bad-dangerous. But if you explain it to him, then redirect him, over time he will learn not to do it. He's able to understand on this level.
So, you take him to the blocks, and ten seconds later he's back in the knife drawer. At that point, you go over to him, get down on his level, make eye contact, and say, "I'm sorry you chose to get back in there. Mommy told you that if you did, you'd have a time out because it's dangerous. Let's go..." and you take him to a pre-determined area (or a corner, if you're in public). It's important that the area be removed from you and free of distractions. When you get there you say, "I want you to learn that being in that drawer will hurt you. I want you to stand here for 2 minutes (one minute per year of age) so that you can get a hold of yourself, and I want you to think about why Mommy doesn't want you to get hurt."
A lot of the problems that parents and teachers have with timeout is that they're just plain doing it wrong. It worked with the kids I worked with who were so dangerous that they weren't able to be in the regular special ed population - they were in what basically amounted to kiddie jail. If it works with those kids, it'll work on your kid, if you do it properly.
You ignore him for two minutes while he's in time out. If he gets out of the corner-area, you put him back (physically, if necessary), and re-start the clock from 0. At the place where I worked, the kids had to be calm for their minutes - if they were in there screaming for 10 minutes, the clock started when they got control. Either way works, as long as you're consistent. The other people in your life who care for him (his dad, his babysitters, his grandparents, etc.) need to be consistent, too, as much as possible.
After the time is up, you ask him to explain to you why he had a time out, you ask him to apologize, and you give him a hug and IMMEDIATELY move on - no dwelling on what happened. You say, "Let's go play blocks..." or whatever.
The first few days of this will be pure hell. He's been running over you like a freight train, and it's going to pee him off that he can't anymore. The first few days that a kid was with us at my work were always the hardest. But once he figures out that this is the New World Order in his universe, and that you're not going to be a pushover or back down anymore, he will get on board. You can use this technique with any undesireable behavior, and it works. It even worked on my dog (minus the explaining part). We taught her to go into the bathroom when she was bad, and eventually we faded the behaviors that we didn't like (although we never did figure out barking, but I figure that's her job - to protect the house - so I let it slide).
I hope you'll try this. I'd love to hear how it works, when you've been doing it for a few months.
Good luck, Amy