It is possible but it can be tricky so you have to understand how reports expand and contract and what this might mean for multiple report grids which are either beside each other or above / beneath each other.
I normally first recommend you attempt to define it as a single report. There is no restriction on doing things like having a section of account rows followed by some additional column headings, blank rows, and another section that may be a different dimension such as products. Using this technique there is no danger of getting strange interactions between multiple report grids. For the best query performance with this approach, make each section in the rows a nested row definition to separate the queries into more symmetrical queries across a smaller slice of the database.
When a report grid does an expansion or contraction, it inserts or deletes rows or columns in the worksheet. This means that if you have 2 separately defined report grids beside each other, you should not attempt to include dynamic Row expansions in the reports. Or it you have 2 report grids above each other, you should not attempt to include dynamic Column expansions in the reports.
The other thing to remember is that if you want truly free form reporting, where you can layout things anyway you desire in a Worksheet, there are a set of CL functions you can use. These functions also offer very good performance.