Please attach all sub VI's when attaching an example VI.
Your array is fairly large. 10,000 X 23 X 4 Bytes/SGL = 920 K. Double that value if you are using DBL's. The memory management behind this large array is probably your bottleneck -- not the shift registers.
I am attaching an example that shows how to implement a circular buffer. You will need to modify it so that it can be used with your array.