When addressed to someone else, "may" (in this context) gives permission to do something. "You may go to the gym" therefore means that you are allowed to go to gym that evening. (Similarly, if you want to ask if you can do something- like eat the last piece of cake in the fridge- just say "may I please eat the last slice of cake?")
When "might" is used, it suggests that there is a possibility of something happening. "He might come tomorrow" means that there is a possibility he is coming, but it is not definite whether he will or won't.
With this in mind, let's reverse the sentences and see how the meaning changes!
He might go to gym= There is a possibility he will go to gym
He may come tomorrow= He has permission to come tomorrow.
Although these two words are often used interchangeably in English conversation, the above explanation is most grammatically correct.