E.R.
Oh boy, 2 is so much fun, lol! All I can say is BE CONSISTENT. Even if it doesn't seem to be working, even if time-outs seem to go no where. Just keep doing the same thing over and over and over and over.
You need to react to a bad behavior (spitting in a drink, pulling hair, etc.) the same exact way EVERY TIME and make sure dad or grandma or the sitter is doing the same. If you just keep doing it over and over and over and over- it will EVENTUALLY sink it. It honestly just takes a long time.
Also, any consequence, a time out, or taking away a toy or not allowing a treat like a movie or a cookie- needs to happen IMMEDIATELY. No 'just wait until your father gets home' - that works for older kids who can anticipate and have time to worry about it. For a little one, the consequence needs to take place RIGHT AFTER THE BAD BEHAVIOR- or their brain simply does not 'connect' the two things.
A time out can take place in a chair, a pack n play a room. It can just mean having to sit on the rug without a toy for 2 minutes. Just keep doing it - I know it seems like it isn't sinking in, but it will eventually. And it is never to early to always say " Use your words!" This encourages communication instead of throwing the truck at his sister's head because he wanted the toy she had! Just keep it up= sounds like he is a normal 2 year old! Hang in there :)