I think the thread is wandering a bit.
Lets focus.
The original question:-
Is it possible to reset or reboot the arduino from the program.
begs the question why.
this was:-
but i need to reset the millis every 12hours
Is this the only reason what you want to reset?
If so why not re zero the millis counter in software?
Other alternatives are:-
1) Making a jump through the reset vectors.
2) Using the watchdog timer and stop kicking it when you have exceeded the time you want to re start it.
Only then do you need to resort to hardware.