Ignore Ignore Ignore the tantruming. Yes, easier said than done.
The milk - if he asks for the green cup and you prepare it in the green cup and he changes his mind, throwing a tantrum (and the cup), calmly give the cup back to him and say "You *chose* green. If you want your milk, you will drink it in the green cup. If you throw it again, you get nothing." He won't starve. He may throw a bigger tantrum, which you are to ignore. By doing this, he learns that when he makes a choice he lives with his choice. However, if you bend to his will to allay the screaming then you further encourage the behavior - do NOT change the cup color just to get him to be quiet! You gave him a choice, he made a decision - the end.
I know it is difficult, but keep your cool as best as possible during these times. Toddlers KNOW they can push your buttons. It's like they have a sixth sense, especially in public, and think that if they scream louder and carry on bigger, that mommy and daddy will give in and that is the last thing you want. Let him have his tantrum. If the area is unsafe, move toys or things and make it safe, step over him, and ignore it. He needs to learn that his theatrics do not cause you to change your behavior. Don't worry if he does this in public. Yes, I know it is extremely embarrassing, but chances are every adult who witnesses this tantrum knows what you're going through and will silently be cheering you on when you give the tantrum no attention.
I always laugh, thinking that having a colicky baby totally prepared me for the terrible twos and tantrums. At least when he was two I knew why he was crying! My son once had a 17 minute tantrum because he didn't get a cookie (he threw his dinner of hot dogs across the kitchen...definitely not a treat-worthy behavior!). We left the kitchen and went to our family room and I sat there as a barrier preventing him from returning to the kitchen. I looked down at the ground and did not say a word while he wailed and screamed and kicked. 17 minutes. He finally realized that his antics were not going to force me to give in so he gave up. After that we barely had any more knock-down drag-out tantrums.
Good luck to you - the better you can be at not getting emotional, the quicker they learn that their behavior is not going to get a rise out of you.