It can be done with DISM, but it's best to use portable applications that don't require installation. For installable applications you install it with the scanstate tool in audit mode. This will allow you create a provisioning package you can then use DISM to inject into a WIM image file.
Packaging applications
How to add Windows desktop applications and other data by using audit mode.
docs.microsoft.com
You then would use Wpeinit to launch whatever menu application you choose or you could even create your own in a .NET language. You'll likely need to push .NET into the WIM file as well with DISM...