Во-первых, происходит ли сбой вызова или он успешен, но после этого вы не видите ключ? Если какой-либо из вызовов в показанном вами коде завершится неудачно, он должен выдать исключение.
Во-вторых, у вас неправильный синтаксис для вызова SetValue. Предполагается, что вторым параметром является объект, для которого устанавливается значение, а не строка, представляющая значение и его тип, который, как вы ожидаете, будет делать. Другими словами, измените его на это:
key.SetValue("Startupdelayinmsec", 0);
или если вы хотите указать точный тип нового значения, то это:
key.SetValue("Startupdelayinmsec", 0, RegistryValueKind.DWord);
Кроме того, как и другиеЗаявлено в комментариях, вам понадобятся права на изменение реестра. Вход в систему как администратор может быть недостаточно. Вам также может понадобиться запустить ваше приложение как администратор.