Create a list view layout based on your portal table and put fields from the customer table in a header or sub summary part. (Use the header if you just want the payment history for one customer at a time. Use a Sub summary part if you want the report to list the payment history for multiple customers.)
You can control what records are part of this report by first performing a find, then sorting the records.
This is very similar to how the invoices starter solution prints an invoice. The layout in this file is based on the lineitems record, but includes fields from invoices. You might carefully examine the layout and scripts for this in that starter solution to get some ideas in how you might set this up.