Your two questions talk about different things. The first talks about the present, the second talks about the past.
Imagine an astronaut named Major Tom has a malfunctioning spacecraft. One of the technicians might ask:
How much oxygen does he have?
In my particular context, that means: How much oxygen is in his spacecraft, and how long can he be expected to live on that oxygen? A valid answer might be, "About 12 hours' worth."
Your second question asks about how much oxygen someone has been given. Perhaps a patient is undergoing oxygen therapy; a doctor might come in the room and ask:
How much oxygen has he had?
The answer might be "He's had 75 liters."
Both questions are valid. You would use the first one when you are asking about a current quantity. As another example, suppose we were going on a scuba diving trip. I might ask, "How much oxygen does he have?" and you might answer, "He has four tanks." The second talks about how much oxygen has been used during some specified time up until the present.
If we change oxygen to sandwiches, suppose we are going on a picnic.
How many sandwiches does he have?
asks about the number of sandwiches that have been packed inside his picnic basket, but:
How many sandwiches has he had?
asks about how many sandwiches he has eaten.