I have a 15 month old who...I won't say hits....but taps harder than necessary like she's testing how hard is acceptable to get attention, and has started crumpling to the floor or doing a whole body spasm when she's impatient or when something doesn't go her way. Right now, knowing her learning abilities and personality, my correction is usually to hold the hand she hit me with and tell her "Do not hit" and tell her the apropriate action (pretty much just like you do)...or while she's crumpled explain either how she can fix the problem then physically do it with her to help her figure out how to do it, or explain what I'm doing to fix the problem (like refilling the Aquadoodle pen) at my normal pace...not getting myself worked up or rush just because she's impatient. I guess my thinking is that, with her anyways, the best approach is to make myself lead by example how to verbally work through whatever is going on so she learns that the physical outburst isn't going to work.
She's really a good natured kid and responds well to redirection for now, so I don't think I'll have to do time outs for a while, but I do think that she could understand what a time out means, so I've been thinking about the best way to go about it...still thinking. Even if he doesn't verbalize much himself, if he understands you when you explain what he did wrong, then I think time outs are an option now.
For DD, I know it's just a phase I'll have to guide her through, I don't think aggression is actually a part of her personality. If it were I'd be more stern and use more frequent redirection. And, I know this is redundant, but just because something doesn't work at first doesn't mean it's not going to- stay consistent. He'll learn that you're not flexible when it comes to discipline.