lcd: andare oltre 40 chr

Testato:
la maggior parte degli lcd contengono a livello hardware 40 caratteri per righa, quindi quando li pilotiamo ad esempio con la libreria ufficiale se stampiamo una stringa di 41 caratteri il 41° se ne va sul secondo rigo, oppure sul 4, oppure dove diavolo vuole lui in base all'hardware, alle righe, ecc.

Non è così, gli LCD Hitachi compatible hanno 80 byte di ram contigua, è il buffer dei caratteri, e viene scritta consecutivamente ogni volta che introduci un nuovo carattere a meno che non usi gli appositi comandi per spostarti lungo questa memoria.
In pratica è possibile ottenere qualunque geometria del display che comporta un massimo di 80 caratteri, p.e. il classico 2x20 che ne usa solo 40, oppure il 4x20 che li usa tutti 80, ma nulla vieta di realizzare un display 8x10, ed esistono fatti così, a seconda della geometria ogni riga usa una certa sezione del buffer e questo può creare problemi perché solitamente vengono usati i primi 40 byte per le righe dispari e i secondi 40 byte per le righe pari, non mi chiedere il motivo perché non lo so.
Esempio pratico, il classico display 20x2 usa i primi 20 byte della ram per la prima riga e 20 byte a partire dal quarantesimo per la seconda riga.

Come andare oltre i 40 char ?

Non puoi, almeno a livello di display perché la ram quella è quella rimane.

1: Come fare per far scorrere 100, 200, 2000 caratteri ? (credo non sia possibile 2000 per la ram aduinica)
2: Il comando scorrimento shifta tutto il display, come fare per tenere una riga ferma ed una riga in scorrimento ?

Queste cose vanno gestite da software, nel tuo programma avrai un buffer (stringhe) con le scritte da far scorrere, poi devi aggiornare il display ogni tot shiftando il contenuto della sua ram di quanto serve e solo per locazioni interessate, ti dico subito che non è una cosa semplice da fare, esistono delle librerie pronte che lo fanno, però quelle che conosco sono tutte a pagamento, sicuramente ne esistono di free per Arduino.