TnrModbus.Delay is used to delay between each individual ReadRegister. That's okay. What I meant was: read as quick as possible for example 20 registers, then wait 15 seconds and then read again those 20 registers, wait 15 sec., read again etc.. That reduces the load on the system but also on the devices.
Timeout example is easy, just assign the TnrModbus.OnTimeOut event in your ModbusDemo, set the timout to 5000 and read one register (not polling). After the reading and after >5000ms the OnTimeOut event is called.