I am no expert but it might be a swim bladder problem. Does he have trouble getting to the surface? Have you seen his poop at the bottom of his tank? He might be constipated. Try not feeding him for 2-3 days. It might clear itself out. I am currently having similar problems with a very sick Betta. I am hoping not feeding him for a few days will help.
It won't hurt to not feed him for 3 days. They can survive many days without food. They have small stomachs and get constipated if overfed. How are his water parameters? Does he have a heater and filter? How big is his is his aquarium? Does he ever just sit floating at the surface in one spot and not swimming?
Also sometimes Bettas like to rest at the bottom of the tank so he could just be doing that.
If you could put a thin layer of sand or smooth gravel over the bottom it would be better for the fish because it would define the top and bottom of the tank. And if you could have some floating plants in the tank he would sleep in them instead. The best floating plant is Water Sprite (Ceratopteris thalictroides/ cornuta) but any plants that grow up to the surface will help.