Yes, "a terrible headache" is the proper way to say it — but...
Yes, saying "I had headache" could be correct, depending upon the setting.
Strictly speaking, "headache" is a countable noun because "ache" is a countable noun. Here's an easy test: can you have plural "headaches" or plural "aches?" Of course.
You can have a tension headache today, a sinus headache tomorrow, and a migraine the next day. Those are three very different headaches, and any doctor would use the plural to say that you "suffer from headaches." The word "headache" refers to each specific incidence, not a general condition like asthma. Since you can have both singular and plural headache(s), you have a countable noun.
(Asthma, on the other hand is uncountable. You don't have an asthma today and an asthma tomorrow. You have an attack of your asthma condition.)
Why are some illnesses countable and others uncountable? Because English is weird. Don't ask why, just proceed. Some things in life are a mystery.
Since "headache(s)" is countable, Ben does have a terrible headache. If we're being proper.
There is, however, a difference between proper English and correct English.
Proper English follows all the rules, but English is correct if the speaker makes their meaning clear. (Right there, for example, I used "their" as a singular pronoun, but there is no ambiguity about my meaning. It may not be proper grammar, but it is a correct usage because the meaning is clear.)
A great example is "nauseous/nauseated." If I looked ill and said that I was feeling nauseous, you would understand that I felt like I was going to vomit. I said I felt badly, and you understood me, so what I said was correct. But to be proper, I should have said that I felt nauseated. You would have understood me, either way, so both words were correct, but only one was proper.
Just keep it appropriate to the setting. In normal conversation, don't stress about whether it's proper; just make sure you are understood. Be concerned about proper grammar when you write or have tea with the Queen. Remember, different regions and dialects are full of little oddities, and that's part of what makes English interesting.
If you treat "headache" as an uncountable noun in casual conversation, people will generally understand you.
So "I've got headache" can be correct, even if it isn't proper.