In your favour is the fact that drawing on pixel boundaries in the X direction is fairly efficient (because each extra X is another byte in the LCD memory, whereas a pixel vertically is part of a byte).
However the hardware doesn't directly support it, unlike scrolling in the Y direction (which is just a hardware register).
If you just want a line of scrolling text (rather than the whole screen) I got an example to work fast enough using the library I wrote for the I/O expander. Basically I just erased up to where the text is going to start, drew the text, and erased past it. This can be done pretty fast, and gives the impression of smoothly scrolling text.
In fact, if you do it too fast it becomes a bit unreadable, at least with the LCD I have, because the LCD pixels have a fairly slow recovery time.
Ah, I see why now, from Wikipedia:
As the number of pixels (and, correspondingly, columns and rows) increases, this type of display becomes less feasible. Very slow response times and poor contrast are typical of passive-matrix addressed LCDs.
I'm guessing mine is a passive-matrix display, and to be honest, even with a deliberate 100 ms delay between each attempt to scroll horizontally, it was making my eyes water.