Как создать сервис регистрации бесплатных доменов?
Я пробовал. В принципе ничего сложного. Сначала пишите в БД, затем выгружаете в зону любого DNS сервера* (для начала раз в 10 минут), когда будет много доменов, механизм можно улучшить. 
*) хоть в sqlite, powerdns, например, и так умеет. 

Whois очень быстро можно сделать на xinet.d
Как я понимаю, Вам просто необходимо дать пользователям возможность вносить А-запись для домена 3-го уровня. Ну и MX чтоб почта ходила.