Microcontrollers have a limited number of I/O pins. And sometimes you need more than you can get. But there is always a solution. For instance is this simple project Arduino board controls a LCD via 3 wires.
Technique isn’t new. I bet many projects are already using this technique. Solution is simple – arduino sends serial data to shift register that sends it to LCD via parallel lines. Of course when doing such modifications – standard LCD control libraries won’t be useful any more. For this particular case use this one.