You should also consider the actual data rate at which you are attempting to write data to the hard disk.
Based on the specifications that you posted I calculate that you are approaching 46MB/sec of data streaming to disk if writing double (DBL) values to disk. IDE hard drives can typically sustain a datarate of anywhere from 20-40 MB/s. SCSI harddrives can usually go a litte faster, 30-58 MB/s.
You also have to consider what else the computer is doing while it's writing to disk. You mentioned that the data acqusition loop is taking a lot of processing time. --Have you added a wait VI in your data acqusition loop? Also, have you considered using fewer RT FIFOs? Reducing the number of FIFOs will reduce the overhead associated with maintaining all of that data in memory.
The type of data you're writing to disk will also effect how fast you can stream that data to disk. The LabVIEW DBL data-type is 64-bits. A single (SGL) is only 32-bits. This would cut your data transfer rate by half, down to 23 MB/s. Since your data acqusition board is only 16-bits you should be fine using SGL values. If you decide to use this method you should convert you data to SGL format immediately after you get it back from the DAQ read function and before you send it through the RT FIFOs. If you're really crunched for data-rate you could even read back unscaled values from the board. This would return 16-bit data and further reduce your datarate to about 12 MB/s.
Note: If you read back unscaled values in DAQmx you will also need to save the device scaling coefficients. You can do this with a Channel Property node. In the Channel Property node choose: Analog Input:General Properties:Advanced:Device Scaling Coefficients:Device Scaling Coefficients. You use the scaling coefficients to calculate voltage from your unscaled data.
~~