Вы должны обновить до SQLite 3.7.0 или более поздней версии, которая включает запись в журнал. Этот новый метод блокировки позволяет читать во время записи.
http://www.sqlite.org/draft/wal.html
Для копирования между базой данных в памяти и базой данных на диске вы можете использовать API резервного копирования, но он еще не открыт через оболочку .NET.
Кроме того, увеличив размер кэша, вы можете получить ту же производительность из базы данных на диске, что и из базы данных в памяти - все это можно кэшировать в памяти.
Другой вариант - использовать новую версию Oracle BerkleyDB, которая имеет внешний интерфейс SQLite, включающий ту же оболочку .NET, и заменяет официальные версии SQLite. Они изменили механизм блокировки для поддержки блокировок на уровне страниц вместо блокировок на уровне базы данных и значительно улучшили параллелизм и, следовательно, производительность нескольких соединений. Я не использовал это сам, но я читаю хорошие вещи.
http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html