As far as I know REAPER will not load any media not on the timeline,
so to have subtitles, you can have SRT, and import them with a script (this already exist: Script: HeDa_Import SRT.lua), and use a
script to push this text content to the video processor instance.
Maybe it can be a bit simpler with the gmem new functions using global memory but this hasn't been done yet as far as I know.
EDIT: Ok I had a bit og gmem test code, I confirm it would theorically be possible to use text items WIHOUT having to have a video processor instance on every items. In fact, even regions could be used in this case, but text items is preferable if you need multiline text. It would also require making a custom script for video processor which could read those data, but possible.