Sorry, I don't take screen shots.
To hide a column, you would use the Format Field for an object, and click on in the button 'x-2' to the right of Suppress, you would enter the formula/logic that would cause that the object to not be shown.
For moving the object (columns) you would right click on the object, select Size and Position, and in the 'x-2' button define the logic to move the column in the direction that you want, and be the amount...
How to check if a column is empty? I don't know off-hand...my first thought would be to put logic in the record selection formula to check if the column is empty, Iam guessing that you can do this, but I don't know as I haven't had to do it myself. I am guessing that you would need to keep track of which columns are to be suppressed and how big those columns are. then when you are displaying the report you would need to hide those columns(maybe, maybe not, as they are empty, I am guessing you could write over them, but I may be mistaken) and to move the non-hidden columns by the correct amount.
Yes there is a lot of trial and error and figuring out how to do it. It has been over 3 years since I did a report like this, and then it was just a proof of concept, and was never put into production. The most important thing to remember in moving an object is that 1440 equal 1 inch, and that it is relative to where you placed the field to begin with.
Good luck