Keep reinforcing the time outs or maybe making him earn back the toy he used to hit with. He will eventually understand but it will take a while. Every child goes through this stage. I've seen some children have multiple stages where they do the hitting, biting, pushing, kicking, etc. constant reminders of the unwanted behavior and what will happen if the behavior happens will eventually sink in. Every time something happens, you need to address it or his dad or somebody. Even when playing, if he does this behavior during playtime, take him out of that situation and let him watch the other children play. He'll soon realize that he wants to be there and he get to thinking about how to stay there. With your constant reinforcement about the situation, things will start to click.
2-year-old act on impulse. They do not think about what the consequences are. They will hit or push a child down the stairs if the child gets in their way. He does not understand now nor does he have the cognitive thinking to understand now. All parents go through this stage. Some kids bite, some kids hit, some push, some hit toys over the heads of other children. All will be better once he turns 3.