Basically, suppression of repeating values is what comes with ORDER and GROUP usage. You can't make them work any differently. However, you can create a new report item that is assigned the value for region and group. But, to do that you have to "grab" those values in a COMPUTE BEFORE ... block and then save them in a temporary variable. Then you use the temporary variable to assign a value to the column that shows up on the report.
proc report data=sashelp.shoes nowd;
COLUMN Region newreg Product newprod Subsidiary Sales;
DEFINE Region / group width=20 noprint;
define newreg /computed 'Region';
DEFINE product / group width=20 noprint;
define newprod /computed 'Product';
DEFINE Sales / ANALYSIS SUM;
*break after Product / summarize;
compute before Region;
** "grab" the region value before it is suppressed;
holdreg = Region;
compute newreg / character length=20;
newreg = holdreg;
compute before Product;
** "grab" the product value before it is suppressed;
holdprod = Product;
compute newprod/ character length=20;
newprod = holdprod;
COMPUTE AFTER Product ;
LINE @59 'TOTAL'
@89 Sales.Sum ;
COMPUTE AFTER ;
LINE @59 'GRAND TOTAL'