In der Registry suchst du dir zuerst unter dem Key HKEY_CLASSES_ROOT den gewünschten Dateityp aus. Der Standardwert (im Regedit mit dem Namen (Standard); in Delphi einfach mit '') beinhaltet einen "Link" zum richtigen Key. Wenn du diesen Key öffnest, siehst du bereits den Inhalt, den du brauchst. Unter DefaultIcon ist der Icon des Dateityps festgelegt, unter Shell kannst du die Kontextmenü-Einträge dieses Dateityps bearbeiten. Wenn du open öffnest, kannst du unter command die Standardanwendung festlegen, mit der der Dateityp geöffnet wird.
Die "Öffnen mit..."-Liste wird vom Explorer automatisch erstellt. Ich denke, wenn du ein Programm mit einem Dateitypen verknüfpen willst, reicht es vollkommen aus, wenn du das Programm in das Kontext-Menü einfügst.
Und so kannst du tatsächlich ein Programm in die "Öffnen mit..."-Liste einfügen:
Klicke dich im Regedit durch die Keys bis du bei HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\ anmgelangt bist. Dort suchst du dir deinen Dateityp aus, öffnest den Key, öffnest OpenWithList und schreibst dein Programm mit fortlaufendem kleinen Buchstaben als Namen dort hinein.
In Delphi kannst du mit TRegistry aus der Unit registry auf die Registry zugreifen.