running a background 'thread' every 15ms

so how could i get rid of that 1000ms/750ms delay?

See my pseudo code. No delays, runs the second if then every 750 ms.

If you did the first

ds.select(addr);
  ds.write(0x44,1);

in setup
and then did

ds.select(addr);
  ds.write(0xBE);         // Read Scratchpad

  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
  }
 //rest of temp conversion stuff / display / whatever

  ds.select(addr);
  ds.write(0x44,1);         // start conversion, with parasite power on at the end

inside the 750 ms if() bit in the pseudo code - hey presto 750 ms delay for the DS1820 with no delay. You can put other stuff in the main loop and it will run whilst its waiting for the DS1820 to get the temperature onto the scratch pad.