Should be doable; maybe not possible to capture every line, but most of them atleast. To capture all of them, a custom FPGA image could be used.
You could get started with Pawn:
github.com/PetteriAimonen/QuadPawn
See for example signlgen.pawn for how to draw screen quickly with putcolumn().
I intend to add custom FPGA support to Pawn eventually, but can’t promise any schedule In the meantime, it’ll be only slightly slower than native C code would be.