I am having a sore throat. vs I have a sore throat.
He is having a heart attack. vs He has a heart attack.
It is common in Indian English to overuse the continuous tense. In British and American English, you would never say 'I am having a sore throat'. A sore throat is a state that persists for some time. So you say 'I have a sore throat'.
However, a heart attack is an event, not a state. During the event, you are having a heart attack. Afterwards, you had a heart attack. At no point should you say (in BrE or AmE) "He has a heart attack".