<p>What is the best way to store a large number of data points?</p>

<p>For example temperature values which are measured every minute over lots of locations?</p>

<p>SQL databases with one row per data points doesn't seem very efficient.</p>

I would like to know why you reckon it to be "not efficient". Probably you need to explain your data model and schema to give a better context of the scenario.
Storing multiple data points into a single row, when they are not related to each other, and should indeed stand on their own, is not a good approach. Meshing together will result in very counter-intuitive and quirky query statements to pull out the correct data points you need for a given scenario.
We have done work in a power station before, collecting data from various systems and metering equipment a wide variety of gas and electrical parameters that need to be monitored and aggregated. They can come in every 3-5 minutes to 30-60 minutes depending on the type of parameters. These naturally results in millions of records per month.
The key is indexing the tables properly so that their physical order is tied to sequence in which the records came in. (Clustered index)  New pages and extents are created and filled sequentially by incoming data. This should prevent massive page splits and reshuffling.