The slip occurs because it takes your sketch a finite time to detect that the interval has passed, and you are starting timing the next interval based on when you finished processing the current one. You need to change this so that the next interval ends a fixed tie after the current interval ends, as shown below. If you use this technique then it doesn't make any difference how long it takes your sketch to get round to checking whether the event is due or how long it takes to complete processing of the event.
Also note the use of subtraction instead of addition when comparing timer values. Conceptually this makes no difference, but in practice the code below is needed to correctly handle timer overflow situations. I don't know whether your sketch will ever run for long enough for that to be an issue, but you should get in the habit of coding correctly for that situation anyway.
void loop()
{
sensors.requestTemperatures(); // Obtener temperaturas DS18B20
if (millis()- lastReadTime > refresh_rate)
{
lastReadTime += refresh_rate;
// do all the other stuff you want to happen at refresh_rate
}
}