threading/multiple threads

First, yes you can do multithreading - or at least co-routines on the Arduino, but usually it isn't a good solution and it creates more work than it resolves. In your case, your libraries probably suck and take too much time. First get rid of all delay statements inside and outside the libraries and then arrange things so that if one thing doesn't need to be done, another thing is tried. One could also suggest you take a look at the Blink without Delay tutorial. (I really need a button to automatically insert that link)

For time critical functions, you also have the option of using interrupts, which is still better than multiple threads, but considering how you asked the question I doubt this will improve matters much for you. Those also need some more understanding of how the processor works and what cannot be done inside an interrupt service routine and what's just a bad idea.

To sum it up, I advise you to clean up your code so things works properly with one single loop. If you think that's impossible, let us now why and give some more details about what you try to achieve.

Korman