In short, First I render the text layer in software, which is not very expensive CPU wise since scrolling the text up just means moving everything one byte backwards.
Afterwards I overlay it into the background layer in RAM and copy the blended buffer into VRAM using some special GBC DMA features, this second part IS very CPU expensive, since it means ORing 4KiB of data.
The background layer is just a normal piece of GBC artwork with the exception that color 3 of every tile is reserved for the text color.
I got inspired to code this by a GG tech demo!
https://www.pouet.net/prod.php?which=56575