Performing FFT at low frequencies but high resolution?
I assume for "high speed" you mean a small delay from data collection to the resultant FFT. With a low sample rate, your computational ability isn't the limiting factor, given modern computers. The delay problem lies in having enough data for analysis. If you want your 1Hz bin to be different from DC/0Hz, you have to accumulate enough signal data to capture a full cycle of that signal. This is why, for a fixed sample rate, a longer FFT gives you a higher frequency resolution.

Thus, for very low frequencies, your low sample rate (128Hz) means that it will take only a few samples to differentiate these frequencies: a 128-point FFT will have 1Hz resolution and a 256-point FFT will have 0.5Hz resolution. The problem lies in getting that data. 256 points takes a whole 2 seconds to accumulate at a 128Hz sample rate. For a faster FFT update rate, you could re-use samples: take say 32 samples as data blocks, then compute a 256-point FFT using the most recent 8 blocks. Then, when you have 32 new samples, you can throw out the oldest and update the FFT 4 times per second.

Essentially, you have encountered the trade offs required in creating a spectrogram: you have to choose between frequency resolution and time-locality. (MATLAB activity and example here) More frequency resolution requires more samples, thus making your FFT represent a long span of time. Using a short span of time means using fewer samples, thus making your FFT frequency resolution lower. You'll have to choose which is more important in your application.