Да, вы можете показать форму на рабочем столе службы. Он не будет показан ни одному вошедшему в систему пользователю, фактически в Vista и более поздних ОС вы не сможете показать его пользователю, даже если вы установите службу в «интерактивном» режиме. Поскольку рабочий стол не является интерактивным, сообщения Windows, которые получает форма, будут немного отличаться, но подавляющее большинство событий должно вызываться в службе так же, как и на интерактивном рабочем столе (я только что провел быстрый тест и получил форму загрузка, показ, активация и закрытие событий).
Следует помнить, что для показа формы ваш поток должен быть потоком STA и должен быть создан цикл сообщений либо путем вызова ShowDialog, либо Applicaton.Run. Кроме того, помните, что все внешние взаимодействия с формой необходимо маршалировать в нужный поток, используя Invoke или BeginInvoke в экземпляре формы.
Это, конечно, очень выполнимо, но на самом деле совсем не рекомендуется. Вы должны быть абсолютно уверены, что форма и любые содержащиеся в ней компоненты не будут отображать неожиданный пользовательский интерфейс, например окно сообщения, ни при каких обстоятельствах. Единственный раз, когда этот метод действительно может быть оправдан, - это когда вы работаете с устаревшим качественным устаревшим или сторонним инструментом, который требует создания ручки для правильной работы.