1. Sequence is just a list of transactions (each one is sort of scenario). You can have lots of different sequences, that is lots of scenarios. Sequencer and driver are about TLM (Transaction-level modeling). They use handshake mechanism (Request, Response) to communicate and be synchronized. Someone should support this mechanism, so they are sequencer and driver. The driver can non directly communicate with a sequence class because it does not have Request-Response mechanism.
2. Virtual means no real transaction scenario it have. But it holds other sequences (scenarios) which definitely comprise the scenarios. You can do synchronization between sequences by means of “wait for some action” which goes from the next sequence.