Если не считать написания собственного драйвера устройства, самое близкое, что я могу найти, - это использовать решение с виртуальным аудиокабелем (существует множество альтернатив), чтобы каждое приложение воспроизводилось на отдельном устройстве. Затем вы можете обрабатывать данные каждого приложения отдельно.
Кроме того, вы можете использовать PulseAudio, если у вас есть исходный код для приложений, которые нужно захватить, так как он имеет монитор для каждого потока.