Ciao Guido,
sì il lock avviene sull'intero file, e quello in scrittura dovrebbe essere esclusivo.
Più processi possono accedere, ma quando uno di questi sta scrivendo soltanto quello può vedere i dati.
Questa faq secondo me spiega abbastanza bene come stanno le cose
http://www.sqlite.org/faq.html#q7
In particolare
If two or more processes have the same database open and one process creates a new table or index, the other processes might not be able to see the new table right away. You might have to get the other processes to close and reopen their connection to the database before they will be able to see the new table.
Per situazioni di sola lettura SQLite dovrebbe essere sempre conveniente rispetto a un RDBMS classico
A detta di chi lo usa massicciamente SQLite può gestire siti con più di 100.000 accessi giornalieri se non vi sono situazioni pesanti di concorrenza lettura/scrittura