SQL Server is not causing the timeout. ADO is. There's a property, commandtimeout maybe, that you can change.
Also, remember that DELETE is a logged operation. In the event that the operation is interrupted, all 2 million rows will be rolled back.
-Mike