from these two options I would always choose option 2, because set limits do always have a bad taste and there will be the time where limits will be reached.
Of course somehow option 2 will always be looking a little unstructured if you select the data without a order by statement. with the right index set to order by conditions there will be no noticeable speed issue.
The guys that build reports do always complain *giggles*. My experience with reportings is that data structures do never fit 100% in all circumstances. There will always be a certain amount of head scratching how to gather the data the way you need them. OLAP cubes are a good toolset for forming the data the way you need them.
If I need to store a variable amount of data as extensions to a fixed set of information (as additional information if you want to call it like that) I use that form of storage, too.
Sometimes it results in a little more work in visualizing the data in a proper way afterwards, but its worth the flexibility.