Our discipline strategy is this:
1. For a first offence, remove from situation and require an apology.
2. At this time, a SPECIFIC warning about consequences if it happens again. State the OFFENSE, the CONSEQUENCE, and DURATION. For example, "If you do it again to anyone anywhere then I am taking away these toys for one week."
3. Follow though consistently.
4. Each time it happens, increase the CONSEQUENCES.
Rarely do I even have to follow through. I think our daughter gets that we mean business and our househild is very peaceful with very little punishment. Once you show them once or twice, they get the message that Mom and Dad mean what they say. In our house, any physical behavior is put down immediately. If she hits or throws something, I take her by the hand, carry her if necessary, and plop her unceremoniously in the guest room (no toys). If we are playing somewhere, we leave. Now the first time she ever does it, I tell her the consequence for doing it again. "If you do it again to anyone anywhere then I am taking away these toys for one week." I actually usually threaten to take away ALL of her movies, but have never had to act on it. Thank goodness, because that would be more punishment for me :) but is significant to her.
I don't like when people say "phase" because it implies your child will grow out of it. Not true. Your child will not stop unless you stop him. Now, he will probebly find some other way to act out - kids this age like to assert their power and dominance. The part that is a phase is: he is trying something new to run the show, he is testing his boundries. For instance, with my four year old, it is telling people that they have to do everything "her way." We quickly stopped the foot stomping and the screaming "no" when she doesn't get her way. Now we are on to negotiation - she is very creative in arguing her point and why she SHOULD be in charge of everyone else. Usually, I can live with that as long as she isn't bullying with her words. It is often just a matter of replacing an undesirable beahvior with a more acceptable one.
In your case, the phase is exhibiting itself with yelling and hitting. He needs to learn to express himself without the hitting. So the power struggle itself will probably continue in some form - but the violence must stop. I know that it seems easier said than done, but I think you simply must not tolerate it. I have a four year old and a young infant, so I know it is tough. But you need to be strict and consistent.
I think he probably feels really bad when he acts this way. Imagine how bad he would feel (and you too) if he acted out with his sister that way. You really need to jump on this and help him deal with how he is feeling because as disruptive as it is for you, it is also pretty hard on him.
I suggest finding a quiet peaceful time with him and discussing your plan with him - "I don't like how you are acting when you get angry. It is okay that you get angry, but you may not yell and may not hit. If you do, this is what will happen. Do you understand?" Then, follow through. Maybe use a book or movie as a jumping off point to discuss it. When it does happen, after you punish, discuss what he could have done differently. I suspect he is searching for a way to communicate and can't find the right words or behaviors. Give him ideas. When you got mad, maybe you should have said, "Mommy, I am frustrated because..."
Just remeber, if you want him to use words to express his anger, YOU need to be willing to hear him and talk to him. If he gets angry, he should understand he is allowed to be. That doesn't necessarily mean he will get his way, it just means that you will listen and try to help him feel better. You mentioned that you get easily frustrated. Try to make a consious effort to model good behavior for him. I assume that you don't hit when you get mad, but maybe your words, volume or tone are implying it is okay to act out. I get very short tempered with my daughter, especialy now with the baby in our house. What helps me is to focus on talking in an overly calm voice, really quiet and slow. This exageration helps me calm down. And sometimes, I do take a time out - I tell my daughter, "I feel really angry at you right now, I suggest that you give me a few minutes alone to calm down." It doesn't always work (often it does), but I am trying to show her how I want her to behave.
Hope this helps. Good luck.