I'm a mom of 6 and I've dealt with this 5 times now (my youngest hasn't gotten there yet!). I think you're right about what is going on. In my opinion that's the age that kids start deciding that they are going to grow up a little...whether we like it or not! My oldest daughter started it at 2. She would no longer let me even assist her when getting dressed. She had to do it all by herself. My son was a little older at 3, but the same type of thing happened as you're describing.
The best way that I found to deal with this is:
1. Pick your battles. They need to be able to show their independence, so ask yourself, "Do I really need to argue this?" and "Will it hurt them in some way for them to do this?" If the answer is no, let them do it. They're just asking for a little space. This will make it easier on you in the later years too, because you won't have them getting independent all of a sudden at 13 and find yourself suddenly trying to adjust!
2.Make sure that you let them know that there is a different way to ask for the priveledge. They're just learning to communicate and I feel like it's my job to assist them with words if they aren't choosing correctly themselves. You don't have to be angry or demanding, you're their teacher...just a matter-of-fact, "Oh, are you trying to tell me that you want to do it yourself?" or if you actually say to them, "Mommy, can I please have two more minutes?" letting them repeat it back to you.
3.I've also found it REALLY helpful to say, "Would you like me to help you, or would you like to do it yourself?" when it comes to something like cleaning up toys or doing something that you've asked them to do. For the first several times it's usually that they want your help, but then they discover that doing it themselves is more rewarding. When I give my help, I always make sure that they aren't getting out of doing the job...but helping too! I like to say something positive when we're done, like, "Wow, we were quick!" or "What a big helper, good job!"
4. The 'warning'. I always like to give a 2-5 minute warning if they are going to have to stop an activity that they are enjoying. If they throw a fit, I remind them that I told them a few minutes ago that we were going to be leaving and then let them know what's next on the agenda. Sometimes saying, "We've done our fun thing by going to the library, now it's time to go get some stuff done, then we'll see what other fun thing we can do later!" will be enough to get them to the car without further incident!
It really matters how you say it. If you are angry, it's not teaching, but preaching. Kids of all ages seem to be much more receptive to the first type!
One more thing. Don't threaten time out. Either do it or don't. If you want to give him to the second time you ask to send him to the time out chair, fine, but I'm struggling with older kids right now that don't take me seriously until the third time I ask! With so many kids I'm talking most of my waking hours! Wish I'd known when they were little and I would have done it a little differently. :) OK, so two more things...don't ever feel like a jerk. Are you being firm with him out of love or out of want of power over him? You want him to grow up to be a good kid...so keep being firm. He'll appreciate it when he's older!
Boy, didn't know all that was going to come out! Hope it helps and I didn't come off as a know-it-all! Good luck!