I know he is in Gold, Silver, and Crystal, but what about in HeartGold and SoulSilver? After the Elite Four is battled again, or, never?
Yes you can rebattle him
Source: Experience
Yes Red is available to be rebattled every time you defeat the Elite 4. He is found on the same place in Mt. Silver with the same Pokemon, movesets and level. After you defeat him he dissapears until you defeat the Elite 4 again, and so the cycle goes on.
You may battle Red again after beating the elite four and Lance again. His Pokemon will remain at the same level and he will always reappear after beating the champion again.
Hope this helps :)