I have to add a new id column to the existing table,
You will have to write/create a brand new table file. That will take time. I suspect that using some combination of views and triggers, and object renaming, will allow you to put together a custom scheme to do this with minimal impact on production (though you cannot avoid the I/O, you can maybe spread it out).
A lot depends on the exact usage pattern of the table in question.
David J.