Распараллеливать смысла нет - дисковые операции плохо паралляться, т.к. диск - медленное устройство. Основной тормоз в вашем случае именно он. Читайте не построчно, а большими блоками, кратными размеру кластера, например по 4/8/16Кб, этим сократите количество дисковых операций. Код конечно усложниться. В прошлом вопросе вам
Oleg Shevelev это уже писал.
Для распараллеливания можно использовать асинхронный IO, но, имхо, это еще больше усложнит код, скорее всего для вашей задачи это не нужно (должно помочь чтение большими порциями), т.к. дальнейшие операции с прочитанной строкой тривиальны.
И кстати, можно не делать чтение файла на С++, если хорошо знаете Матлаб делайте на нем по тому же алгоритму - т.к. дисковые операции основной тормоз, то преимущества от использования С++ практически не будет.
А вообще система отдает программе столько ресурсов сколько ей требуется, если ресурсов не хватает - обычно программа завершается с ошибкой.