With my kids, I always told them in advance what was expected of them. My kids were on the shyer side, so we did a lot of role playing/practicing what do or say when someone says hi. (Give good eye contact, say hello back in a voice loud enough to be heard, ask the other person how they are etc)
I am honestly not a fan of ignoring bad behavior. I also always made sure they would do what was expected immediately. That means if you say it is time to sit and listen to a story but your son wants to go get his truck first, I would walk over and help him sit right then and there. (I always gave warnings though...ie. in 5 minutes it will be story time and you need to sit on the couch. In one minute it is story time and you need to sit on the couch.
Honestly, if you do this with them when the are under a year by the time they are two, they just get it. A pet peeve of mine is when a parent will yell, do not stand on the furniture but the child continues to do so and the parent starts to yell. With my kids, soon as I saw the behavior, I would physically pick them up and say something like "feet on the floor". If you act, instead of speak your demands, you will find that your child is better behaved than some 8 year olds.
Unless you think your son has a disability, there is no reason he can not follow directions. Just be consistent.