Pretty much what everyone said, but also:
- Shorten the name for faster dialogue.
- Change options (fast text speed, battle style, etc) BEFORE starting the game.
- B for every 'No'
-
- HM Slave ASAP
- If you HAVE to battle a trainer and there's no way to avoid them, talk to them instead of having them notice you, it cuts the time dramatically.
- Repels, repels, repels.
- Trade in a Pokemon and/or attach a Lucky Egg to get the boosted XP so you won't have to worry about grinding.
- Focus on storyline -- don't go out of your way to get anything unless it's needed.
- Lastly, make sure you know the storyline well. Otherwise, you may get stuck and waste time.
That's all I have. Good luck to your speed runs!~