That's how I ended up doing it in the end, one request for each item... It does slow down refresh a bit, but still real time enough for me.
In the VW TP2.0 protocol, there is a facility for assembling multiple request to batch it in one transaction, but I never had a chance to get it to work.
You can define your own DDLI with all the values you need (there are some limits, though).
Tried it with MED9 - and without auth and any ECU patches - the F0 DDLI can contain up to 20 single-byte values. Or, to be precise, the last item can contain 20 sequential bytes as well.
So, up to 39 bytes without any additional tricks.