Если уж есть возможность писать во временную таблицу, то проще писать туда все и потом делать merge в целевую таблицу. Но я так понял задача делать merge именно не выходя из ssis. Как вариант (если строк на обновление действительно много и использовать промежуточные таблицы в целевой базе нельзя ) писать их в recordset, потом из него с помощью c# динамически создавать sql запрос с разбивкой по 1000 строк, вставкой в табличную переменную и merge из неё в целевую таблицу, и в цикле передавать его в execute sql task. Но сам так не пробовал делать, поэтому не уверен что будет лучше работать чем oledb внутри data flow