Why does Roger miss hitting Henry when throwing rocks at him?

Roger just wants attention, and he does not want to hurt Henry.
Roger is just paying a game with Henry.
Roger thinks it’s funny to get sand in Henry’s eyes.
Roger is conditioned to be civil and does not want to get in trouble.

None of these options are entirely accurate. Roger misses hitting Henry because he still has some sense of morality and feels societal pressure to follow basic rules of conduct. Even though he wants to hurt others (as evidenced by his earlier behavior of throwing rocks at the littluns), he still hesitates to cross the line into truly aggressive behavior. This restraint is likely influenced by his upbringing and conditioning in a civil society.