Have you tried making him sit in the room with the toys until he picks them up? My daughter is almost three and doesn't exactly like doing a lot of the things that I ask her to do either. So, when she gets too bad, I don't allow her to do anything else until she has done what I asked. I remind her that she can do X when she has done what I asked. I let her take as long as she wants, but she must do it. I have been doing it that way for a little while now and most of the time all I have to say is, "pick up toys first, then we'll read your book (or whatever it is she is asking for). That seems to work for us. The trick is to be sure not to forget what it was you promised to do afterwards when it takes hours to get the task accomplished. The first couple of times I tried this, I almost threw in the towel b/c it took so long, but I kept reminding myself that my word had to mean something. So, after what felt like an eternity, she did it and I had to dig deep to remember what it was we were allowed to do afterwards - which, by the way, she reminded me of :) I hope this works for you. It was SOOO hard in the beginning because the task for me was so small. I don't even remember what it was. I just remember thinking - oh, this would have been so much easier if I had just done it myself and not said that she had to do it.
Good luck!
B.
Gymobree of Lee's Summit