First, you have to catch all three of the legendary dogs. Then, you talk to the Wise Trio in the Tin Tower. They should give you the rainbow wing. I don't know if you have to put them in your party or not, but I know if you catch them, the Wise Trio will give you a Rainbow Wing and then you can catch Ho-oH.
Chat with our AI personalities
In navel Rock
After you beat 7 gyms go to Goldenrode city and go into the radeo tower. Beat the radio tower and some one will give you a rainbow wing.
You get the rainbow wing from the radio tower director after you get rid of team rocket. (Same thing in soul silver).
to help you get lugia in the whirl islands..
You receive it after rescuing the Radio President