Most of the time when young kids (and older kids too) act up in school it's because they're unhappy or stressed about something. Try to figure out what's stressing him out, and see if you can correct it.
Is anything going on at home that he could be stressed about? Divorce, new siblings, step-parents, etc. can be really stressful for kids. If you and your husband fight a lot, even if you think your son is asleep, that can be really hard on kids too. Problems at home are the biggest cause of behavior problems at school.
Is he fitting in with the other kids? If he's having trouble fitting in, get to know some of the other parents of kids in his class and arrange play-dates. It may seem weird to you to be arranging for him to hang out with someone he's not friends with yet, but with kids that age it actually tends to go pretty well.
How is he doing accademically? Maybe he's struggling to learn to read or can't keep up in math. If he's having trouble, you might want to have him assessed for learning disabilities. When kids are struggling there's usually a reason, and, speaking from experience, early intervention can make a huge difference for years to come.
There are plenty of other things that can be going on. If you can't figure out what's up, you might want to have take him to a psycologist for assessment. It's never just that they're badly behaved, so disipline probably isn't the answer.