My 3-year old is doing the same thing and it's driving us batty. I think his mind is overloading him on wanting to be independent. Within the last month, everything is a struggle and "No!" or "I'll do myself" seem to be the only constant coming out of his mouth. He's really showing it in the areas of food (just like your son) and in not wanting to wear whatever I have out for him.
I have found by "helping" him to be independent we have prevented the same meltdowns you're having. And those that we don't prevent, we simply ignore or have him go to timeout if he's out of control.
Try this at meal time:
When he's done, tell him to be a big boy and put his plate in the sink. This allows him to control his "i'm done". If he then says he's not done, say no problem, just finish your meal. But tell him that he needs to be finished with his meal with y'all are finished with yours.
When he back tracks on his own choices like the example you have listed above of him choosing apple juice then saying he wants OJ instead; again, say "no problem! as soon as you drink the apple juice you asked for then you can have OJ".
And as hard as it is, it really IS a battle of wills at this age. Just stick to your guns....but most importantly, let him make as many choices as you can.