Все возможно реализовать :)
Это решение можно считать продвинутым, поскольку оно требует программирования, например, на C++ или C # (вот хорошая статья о том, как это сделать на C #).
Я не могу опубликовать более двух гиперссылок, поэтому вам придется самостоятельно получать документацию по каждой функции (просто найдите ее в MSDN).
Для решения вашей проблемы вы должны использовать WinAPI для:
- перечислить мониторы с помощью функции EnumDisplayMonitors
- перечислить все окна верхнего уровня, используя функцию EnumWindows
- сопоставлять мониторы с окнами с помощью функции MonitorFromWindow
- определить, какие окна свернуть
- отправить сообщение WM_SYSCOMMAND со значением SC_MINIMIZE в соответствующие окна с помощью функции SendMessage