Well, my kids are much older now but I do a lot of role-modeling in my preschool classroom and praise the children for being kind to one another and helping keep our room clean and using good manners and so forth. His teacher at school probably praises the children for helping out and being kind to others and so forth.
I think its important to begin teaching empathy, kindness and appreciation at an early age. The best way to help shape your child's behavior is to "catch him" doing the behaviors you want to see more of. When he says something kind to you or a friend, does a little chore you ask of him, picks up his toys or does something you ask him to do the first time you ask, praise him and tell him how much you appreciate his kindness and help. This also helps him feel more confident, will help him with his relationships at school and also helps him understand what sort of behaviors you are expecting from him. And perhaps he can "earn" going to special movies and museums after he has earned it through his better behavior so he can see some sort of tangible reward for his good behavior. If you want your child to appreciate what you do for him, don't make all of these special events common place events.
Its so easy to overindulge our children today as we want to make them happy and do for them but its important to remember balance in their lives. Its okay for them to be "bored" and have to entertain themselves once in a while. And certainly if they have been behaving poorly, you wouldn't want to reward that behavior. Granted I know he is only 4 but you are planting the seeds for the future with him. If you instill respect and empathy now, believe me the teen years will be SO much easier!
You can also make it a point to say thank you to your husband when he is kind and also visa versa, your husband can say things like, wow.. we really appreciate this nice dinner you made us mom, thank you! Role-modeling the behavior you want to shape in your child in so very powerful!