Ну, конечно, вы всегда можете использовать реальный реестр, который является поточно-ориентированным и быстрым ...
В противном случае вам придется создать отдельный процесс, который управляет вашим виртуальным реестром XML, сохраняя структуру XML в памяти, чтобы ему не приходилось все время читать / записывать. Тогда процессы, которым необходим доступ к нему, могут использовать IPC для связи с процессом реестра.
Другая идея, если несколько процессов вряд ли будут постоянно обновлять реестр: сохраняйте виртуальный реестр XML в памяти и записывайте его на диск при изменении, но асинхронно через фоновый поток. При доступе к реестру сначала проверьте, был ли файл изменен; если нет, вам не нужно перезагружать его.