Timestamps are currently hard-coded to server-side generation, see Conversions.toMessage.
Copy over the TimestampGenerator interface from 3.x.
Add an option in the configuration to specify the generator implementation (see existing policies like retry & speculative execution for examples).
Port the existing implementations.
Note: we don't use system properties (like 3.x's ClockFactory.USE_NATIVE_CLOCK_SYSTEM_PROPERTY) anymore, everything should be in the driver configuration.