Minimizing SELECT latency in PostgreSQL
The main problem is that you have 60 GB of data which you want to access quickly on a single slow HDD (I've never heard of 7400 rpm, is it 5400 or 7200?).

You can partition on the time, so the last two weeks of data are grouped together in tight set. 

Or you could try clustering on the time instead of partitioning on it.  You could either build on index on the date column, cluster on that, then drop the index; or you could just make a new table by create table asdfkj as select * from sensor_readings order by time.  

I would expect the table to already be pretty well clustered on time, but it doesn't seem to be.  How did this table get populated originally?  How does it get kept up to date now?

But all of these methods are pretty expensive (in your time) to avoid buying a better IO system.