There's nothing special about a generic for loop (at least in C-like languages). There's no reason you couldn't do something like for (i = 0; true; i++) to make it infinite. Some languages even support an infinite list generator syntax like for i in [0..] (e.g. it lazily generates 0, then 1, then 2, etc. on each iteration) so you can use a for-each style loop to iterate infinitely.
Now, whether or not you should do such things is another question entirely. I won't pretend there aren't any instances where it's useful, but most of the time you're better off with a different structure.