Of course there is a practical limit, but I haven't run into it. When you consider that Ethernet runs at 100 Mbit/s, simple math says that in 500ms you could exchange 50 Mbits. Of course there is overhead, so I'll divide that by 2, giving 25 Mbits. Divide that by the 32 bits for your INT32 registers, then you get 781,250 INT32s can be exchanged. I'm sure there are other factors of importance here and there is a MODBUS limit of 256 bytes per request, which will be your primary limiting parameter.