I think it would help you to try to see the situation from his perspective. Being told that you can't do something that you really, really, really want to do is very frustrating, especially when you can't understand WHY you can't do it. He doesn't understand the concept of "messy" and doesn't have the reasoning or empathy capabilities to think though, "If I pour this milk on teh ground, it will make a mess and Mama will be upset, so I better not do it." The screaming and tantrums come in when they lack the verbal skills and self control to express their emotions any other way.
The bossiness and needing to be in charge is just a hallmark of toddlerhood. Of course some kids exhibit it more than others, but they're experimenting with independence and authority. Their control over their world is limited, with lots of big people telling them what to do, when to do it, and what NOT to do, that they seek control where they can get it.
The first thing I do when DS wants to do something he can't do is try to honor his impulse. No, obviously he can't pour milk out on the floor, but I can give him a little bit in a cup, and a second cup to pour back and forth. I use this tactic A LOT and with my very spirited almost 2yo it works very well. He got a hold of DH's hammer today, but rather than immediately taking it away, I quickly swept him outside and gave him a rock to hit (closely supervised, obviously). This, combined with being very selective about which battles to fight (as in, if he's wanting to do something that is simply annoying to me, or is going to create more mess than I'd like to clean up, I try to roll with it, and stick to only intervening when his chosen activity is either costly (like pouring out milk, or chipping our tile with a hammer) or unsafe), works well for us.
When it doesn't work, empathize, empathize, empathize, and TEACH. Being shown empathy is how they will eventually learn it. "You really wanted to pour out the milk. You're very angry/frustrated that I said no. I'm sorry." Then just be a calm presence, maybe repeating something like, "I see that you are angry" until the storm passes. Let him have his emotions. Then, if you feel like it's something he can understand, talk about what to do next time. Talk about how he was feeling in that moment, and teach him an alternative behavior. 2.5 is too young for a prolonged conversation, but I think it's a good practice to start now because eventually it will sink in.
"You were very mad, weren't you? I could see that. Next time you start to feel that way, you can stomp your feet/beat your chest like Tarzan instead of throwing something (or yell into a pillow instead of screaming, etc). I'll help you remember."
Also something I've learned with my DS - simply being told no is enough to trigger a tantrum, even if I follow it up with an acceptable alternative. An example - we have a pet chicken and a dog. Last week DS was hitting the dog, thinking it was hilarious. I said, "You may not hit her, that hurts her," and he yelled, "NOOO" and kept doing it. I came over and said, "Pet her gently, like this," and he hit her again, looking right at me. Infuriating! We'd done this before - the second he realizes that I'm trying ot make him stop, he rebels and does it more, whatever it is. I decided that next time I would skip the step of telling him no, and jump straight to showing him what he should do instead.
Later that afternoon, he was doing the same thing to the chicken, but even more because every time he hit the chicken she fluffed up and ran away while he laughed maniacally and chased her to do it again. My instinct was to yell at him to stop, but without saying anything at all, I walked over to them, started petting the chicken, and said, "Oh look, she likes it when we pet her," and he joined right in. Fifteen minutes later we had to repeat the whole routine, but that's par for the course with a 2 year old.
If you're into reading parenting books, I'd recommend The Emotional Life of a Toddler and Unconditional Parenting. Happy parenting!
Follow Mothering