with the $_SERVER vars you could check if you are at index.php and if it does not have a query string at the end you know you are home and display the “right” column.
If there is a query string, this is a posting and don’t dislay the “right” column.
I’m not sure if the center column has adjustable width to fill in where the right column was but you can override the style sheet by re-declaring the css width of the center column if the query string is found.
The is_home() can be used to check whether the loading page is home page or not. And as far as I know there should be two files in the theme folder called something (left-sidebar.php and right-sidebar.php) included in the index.php file. So check if the page is home page then include right-sidebar.php otherwise do not include it.
<body id=“home”> on the home page and <body id=“other”> on all other pages.
The name(s) “home” and “other” can be changed.
Next you will need to go through the theme files (page, single, search, 404, archive and any others) and remove the call to the sidebar you want to remove.
Looks something like this:
<?php get_sidebar(); ?>
Then in your .css find the styles in question and add the #home body ID to them. Then copy the same styles and paste them in the same .css file change the body ID from #home to #other and adjust them to meet the needs of the other pages.
I can’t give more details as I have not seen your site. Post a link and I will try to be more helpful with the .css edits.