Looks like what you want is a crosstab. It sets up the data the way you showed it. I haven't done one in 5 years, but I compare Crystal Reports crosstab with Access's back then. It should produce the results you want.
You will need to use two crosstabs, one for each amount, and then join them together. The final query can be used as the recordsource for the report. If the columns will be variable, you'll need a substantial amount of code. But a good example is available in the solutions db.