The way the code work, there’s a ‘main’ loop which sits and waits until a block of audio is ready. When the audio block interrupt comes in, it unblocks the patch which then processes the samples. It’s double buffered, so that one half of the buffer is filled by DMA while the other is processed.
You could try to do something similar with the LCD, but it may be quite difficult to synchronise the two blocks. How long does it take to send a screen update?
For SPI and I2C communication, you basically have three options: blocking send/receive, interrupt driven, or DMA. DMA is the hardest to configure but means the update can run in parallel with everything else with no load on the CPU.