I saw a thread that said screen was divided into 4x4 areas for pressure and walls because it increased performance (I don't remember which one.) Why can't you just do multithreading for pressure and stop dividing the screen into 4x4 areas (Not walls)?
Also from what I remember newtonian gravity also uses multithreading. I know you can't just mark a piece of code as "multithreaded potato" and it takes some time to do it but I don't think it takes more time than it takes for my game to process some explosion.
Newtonian gravity is mostly fast because it uses dark magic (Fast Fourier Transforms), which can be used to efficently solve n-body systems.