Column stores allow for significant data compression in a way that isn't possible in a row store system. Basically all values in a column are stored only once in a dictionary then the DB stores an integer dictionary key instead of the original value. If you had a row store DB in memory it would but significantly larger, and more impractical give the cost of memory. The performance improvements are significant enough that you no longer need to pre-aggregate transaction data and Cubes are not necessary in most cases.
Also because the column store keeps all of a columns values in sequential memory blocks scanning has fewer blocks to skip in operations like Select. There are however some drawbacks to Column Stores transactionally, and HANA for instance added rowstore tables in later versions.