The DTS is irrelevant for lip-sync. It is used to control decoding,
because B-frames in the GOP structure are sent out-of-order wrt
to presentation (frames are sent in order for decoding), i.e.
they must be decoded in a different order than they are displayed.
The PCR is sent in the adaptation field of TS packets. This makes it
possible for the multiplexer to insert them at relatively regular
intervals, independent of the PES packet sizes.
Lip-sync is achieved by synchronizing the PTS from the A/V PES packet
header to the STC (which is driven by the PCR).
Now in the case of AV-PES playback like VDR does it, there are no TS
packets and thus no PCR. To work around that, the STC is driven by the
video PTS. In practice this works pretty well.
I might be completely "off topic" here, but I seem to remember the ts2pes
code in the dvbdriver has some extra code to deal with these extra settings
in the adaptation field. The structure of ts2pes in dvbtools is very
similar to the one used in vdr's remux.c so someone could adapt it?