Delphi saves the desktop of open files in its .dsk file. This is associated with a Delphi project. So the obvious conclusion is that you just need to change projects. Make each sub-task be a branch in your version control system and that will allow you to operate on different Delphi projects for each sub-task.
If you don't want to do that, then I guess you could perform some trickery with .dsk files. Like this:
- For each sub-task, open the set of files for that sub-task.
- Then close the project and make a copy of the .dsk file. Name it like this: MyApp.dsk.subtask1. Do the same for all sub-tasks.
- Whenever you need to switch sub-tasks, copy MyApp.dsk.subtaskN on top of MyApp.dsk before opening the project.
Obviously you could easily script that for convenience.