Minimum number of flips to guarantee heads
There is no way to guarantee that you will get a heads ever. The chance of getting heads remains a constant 50-50 on each individual flip--flips are said to be independent. It is only in the aggregate of an increasing number of flips that the probability of getting a heads on at least one flip increases. However, while this probability increases monotonically, it never reaches 1.
Yes; it is extremely unlikely that you will get 5 million tails in a row, but it is entirely possible. You can answer a similar question if you are willing to set a tolerance. I.e. if you wanted 95% confidence that a heads will appear, then you want the probability that $N$ flips in a row are tails to be less than 5%.
The probability that $N$ flips in a row are tails is $(0.5)^N$. Computing this for different values of $N$:
\begin{array}{ll} N & 0.5^ N \\ 1 & 0.5 \\ 2 & 0.25 \\ 3 & 0.125 \\ 4 & 0.0625 \\ 5 & 0.03125 \end{array}
Therefore flipping the coin $5$ times will give you $(100 - 3.125)$% = $96.875$% confidence that a heads will appear at least once.
Basically the answer: "infinite" is the correct one. Moreover, you have to be careful in saying that the chance of obtaining a Head increases 'every time'. This statement is false. Each time the chance of obtaining a head is $1/2$. What is true is that the chance of obtaining at least a head in $n$ throws is $1-2^{-n}$. This probability clearly increases with $n$, but you should appreciate the difference with respect to your statement.
If I get a tails, then another tails, and another etc., the chance of getting a heads increases every time.
no. it's still a fair coin after you throw several tails. it's always 50% odds of heads or tails on the next throw. this is just as superstitious as thinking you're at a hot craps table at the casino.