Why *not* use text boxes? It's simpler than two other options right from the top of my head (there may be others):
1. Everything in a table. Extremely bothersome for such a large amount of text.
2. Shifting baseline up and down, and using kerning to put one text over another.
Try all three methods, just for the fun of it, then you can decide for yourself what works best.
What Jongware said, and anchor the text boxes.