Basically the main thing to do if you can is behaviour management - whatever you'd do for any other issue, whether that's consequences if he does it/reward for not doing it, talking about it to get him to understand why we need to wear a seatbelt, a natural/related consequence e.g. plan some "fun" drives but he has to be good and stay in his belt, if he doesn't then you stop, fix him in again and drive home.
Would also double check that the car seat is comfortable. Of course many children dislike being restrained but if he's uncomfortable because the seat needs adjusting, then that could help. Check if the straps need moving up due to his height (they should be roughly level with his shoulders), check the manual to see if you've take inserts out too soon or have kept some in which need to come out now. Make sure his clothing is smoothed under the straps when you tighten them, not pinching him. And while straps need to be snug to the body, you don't need them so tight that it hurts him.
Is he bored - could he be given a distraction to keep his hands busy? Play i-spy with colours, put some songs on that he likes.
To discourage opening the buckle you can get some stick on velcro and stick the scratchy side to the button - that is uncomfortable to press.
You might be able to cover the buckle by tucking a blanket in over the top. Just be careful with anything that covers it that it can easily be removed in an emergency by someone who is not familiar with car seats.
You might be able to change seats - see if you can borrow a different brand from someone and see if he has the same reaction. There are even the impact shield type seats (e.g. Cybex Pallas) which are harder for children to undo.
As an absolute last resort there are heavy duty buckle covers you can buy from the in car safety centre, designed for children and adults with special needs. They do present a risk in that they may impede rescue in a crash so it is only a last resort. You should try the other things first :)