Привет,
В тексте задания все смешали в одну кучу, причем, без четкого понимания, что такое МАК-адрес, сетевая карта и сетевое подключение.
Поэтому по тексту вопроса в заголовке "Как создать несколько сетевых подлючений и заставить разные программы использовать разные сетевые подлючения?"
Для этого нужно в компьютер вставить столько сетевых карт, сколько нужно для работы разных приложений. Каждая сетевая карта будет иметь свой внешний IP и свой внутренний IP, и соответственно приложения можно будет направлять (роутить) в нужные сетевые интерфейса (карты), каждый из которых будет иметь свой МАК-адрес. Само собой, эти приложения должны иметь функционал конфигурирования роутинга. Физически, одна сетевая карта (железка) может иметь только один МАК-адрес. Да, его можно менять, но сделать два и более для одной сетевухи невозможно.