100 GB for 180 000 rows suggests an average row size of 550 KB.
If you want to move the LOB columns to a different filegroup, you can do that with TEXTIMAGE_ON, but I don't think this is possible with ALTER TABLE, so you would need to create a new table and copy data over. Well, if you are to move the LOB to that other filegroup it has to be copied anyway. And if you roll your own, you can take 1000 rows at a time to avoid log explosions.
Moving the LOB columns to separate tables? Could be an alternative, if you want to have the LOB data on a separate filegroup to keep down the size of the primary filegroup, to permit quicker recovery in cases of a disaster.
It may also be worth investigating the actual length by running
SELECT SUM(datalength(REPORT_HTML)), SUM(datalengtth(REPORT_XML))
FROM dbo.report
It could be that there is a lot of empty space. Out-or-row LOB data does not always behave well when you update.