I think, you would have to change the sources for this, although it's possibly only a small change:
* 1 day is 74 ticks; _date_fract used to be uint16 and incremented by 885. On
* an overflow the new day begun and 65535 / 885 = 74.
* 1 tick is approximately 30 ms.
* 1 day is thus about 2 seconds (74 * 30 = 2220) on a machine that can run OpenTTD normally
#define DAY_TICKS 74
As far as I understand this, it should be independent of the speed of the computer (as long as the computer is fast enough).
You could try to change DAY_TICKS to a higher value and recompile openttd, although I am not sure whether this might break anything.
There also used to be a daylength patch http://www.tt-forums.net/viewtopic.php?t=20006
but the last version was for r7031 (we are at r9623 now) and there was a report that something broke.