Hi,
It is possible to daisy chain the 595.
Connect the controller serial data output to the first 595 data input
Connect each 595 output to the next 595 input.
Connect all control lines in parallel.
For 300 io ports you need 300/8 = 37.5 ==> 38 pieces of 595.
Mind that the data_setup_before_clock time needs to be added with 37 x data_input_to_data_output time.
This decreases clock frequency.
Also take care of driving 38 control lines in parallel, here you may need buffers.
If i remember right, then in datasheet of 595 there are schematics on how to daisy chain them. There are many manufacturers for 595, some provide more information in the datasheet than the other. Check datasheets of various manufacturers.
If this solution is too slow, then you might build 4 daisy chains with 5 pieces of 595 each, connectet to one 8 bit port of your controller.
Even with software controlled transmission you may get a higher update rate.
But calculate this before building your hardware.
Klaus