How to create clustered index on 100 GB table
If you've got a short-term need for disk space, one option would be to:


Shrink tempdb temporarily, freeing up as much space on that drive as seems safe.
Create a secondary data file for the DB the table is in on the tempdb drive.
Add the clustered index to the table.
Shrink the secondary file by migrating all data out of it.
Remove the secondary file.
Make sure the tempdb file is allowed to grow to its former size.
Rebuild indexes in the table's DB (the removal of the secondary file will have caused some fragmentation).


NOTE: as others have suggested, I'd only do this after things like temporarily removing non-clustered indexes from the table in question. This in particular will allow the addition of the clustered index to go faster, as the non-clustered indexes would all have to be rebuilt anyway (with a clustered index in place, the index key is used to locate the rows in the table itself).

That's actually another point - how wide is the key on the clustered index? If you do have non-clustered indexes, and the key on the clustered index is significantly wider than the pointer into the heap was, then the non-clustered indexes will consume more space after the clustered index is created.

If the cluster key consists of several columns, or even one large column (say, a varchar column with an average length of 25 or more), you may want to consider a surrogate key instead (usually a monotonically increasing value, for best INSERT performance.