ciao grigorot,
scusa ma non ho mai usato matlab...quindi per questo punto non so aiutarti.
per i restanti punti qualche cosa posso dirti...in primis: per rendere l'esecuzione del programma fluido e non a "scatti" devi sostituire il delay() con millis()...questo implica un cambio di logica nella stesura dello sketch....ma visto che attualmente è meno di 70 righe ed ha "sole" 2 if()...ti conviene assolutamente rivederlo.
come secondo punto...c'è poco da fare...i due metodi utilizzati sensors.requestTemperatures() ed sensors.getTempCByIndex(0) necessitano di circa 700 ms per essere eseguiti...da qua non si scappa...
attualmente il tuo codice per eseguire un ciclo ha bisogno di circa 2.7 secondi dati dai due delay di 1000 ciascuno più, come detto, i due metodi della DS18b20...non so al max6675 quanto tempo serve per ritornarti le informazioni richieste.
se hai bisogno di scendere sotto i 500 ms ciclo loop...devi cambiare sensore DS18b20 con altro.