Does altering a table and adding multiple columns rebuild the table multiple times
Will there be any difference between the above two approaches, in terms of how expensive the operation will be?


No in practice. Because in the second approach the operations execution is one-by-one, not parallel. Cause of this is simple - in theory the next step can be dependent by previous one and so impossible until next step fully performed.


  What are the best practices when performing such operations?


Create new table + copy data + (lock source table + copy data changes in source made by another clients while first copy) + drop old + rename new + restore access rights, FKs and triggers. 


  What does a table rebuild, really mean?


In practice this procedure is performed as described in answer 2 + exclusive lock on the table modified.


  Is there a way to avoid a table rebuild, or make the operation faster: (ALGORITHM=INPLACE) ?


Add separate table with new columns linked to original table as 1:1 instead.