The OLEDB command component in SSIS is a row by row transformation - I'm not surprised it's slow. If you must update changing rows, then consider using a MERGE in T-SQL.
As the table grows, you may wish to start to partition it - this depends on how much history will change.
What sort of information is in the table? Is it a fact or a dimension?