Hello, I know this answer is a little late, so I hope my tips might help anyone else who happens to read this and needs help fighting Rayquaza.
I beat Rayquaza with a level 22 Charmander and a level 21 Pikachu.
I am the type who wishes to finish the game faster, so I try to avoid wild battles as far as possible and this explains the low levels.
Okay, tips on how to battle:
1) There are certain moves I used that are vital, not only to fighting Rayquaza, but also to any other boss. The most important move I used was Attract. This infatuated the foe and gives me time to attack Rayquaza. I taught Attract to Charmander although Charizard doesn't seem to be a guy who bothers to learn it. For my Pikachu, although Thunder Wave doesn't seem to be a useful move, I always used it for boss battles. In this case, I infatuated and paralyzed Rayquaza so it can't even attack, giving me enough time to pin it down. You can see, my battle style is to inflict status conditions, and I use this strategy for any other Pokémon game.
2) Make use of the tactics. Constantly switching tactics is a good strategy as well.
3) I switched the moves of each Pokémon I use to battle. This way, you don't waste rounds to use unnecessary moves as tine can be an important factor.
That's all, and I hope this helps! :)