Unless the inserts/updates are being done in small batches from the SSIS package, the entire operation will be treated as a single batch. Usually this takes longer, and is more resource intensive. Given that it is a single operation, I don't know of a way to find how much time is remaining.
A better approach would be to do the update/insert in small batches. If your database is in full or bulk-recovery, do frequent log back ups frequently in between (groups of) update/insert batches.
When you do the update/insert in a single operation, the entire operation will either succeed or fail as a group. But if you do it in small batches, half way through the insert/updates, you may find that there is a an error. Perhaps this is a desired outcome, or it may not be, but you need to be aware of that possibility.
Updating 1.5 million records is not that huge an operation unless your new columns are varchar(max) with lot of data that needs to be stored off-row. So a day seems rather long. You might want to check if something is blocking the operation. Run the system stored proc sp_who2 and look for the blk_by column to see what is blocking what. Also, you might want to install Adam Machanic's stored proc sp_whoisactive and run it to see what the database is doing.