Совсем не обязательно икать прямые WinAPI вызовы для работы с реестром (так-то конечно лучше все таки изучить и понимать механику их работы — облегчает работу с реестром). В C# есть уже готовые обертки для работы с реестром:
using Microsoft.Win32;
И далее работаем с реестром.
https://docs.microsoft.com/en-us/dotnet/csharp/pro...
В данном случае все крайне просто: кидаете на форму в левой части контрол тип "дерево", а в правую часть контрол типа "таблица/список". И далее просто используете готовые обертки для заполнения контролов данными. Можно использовать как WinForms, так и WPF.