That would mean that any day that they are connected to the internet the program would give them 10 days before they have to connect again. Is that right?
Yes, but don't do that. There is absolutely no need to reverify every single day. an "nDaysBetweenChecks" of 7 is a good minimum value. 30 days is more reasonable. 90 days is the best value. 1-day is overkill.
The next question is, can my program get the number of grace days left from TurboActivate? I would like to display messages to the user like "You must connect to the internet within the next N days to verify your licence and continue to use this product".
In TurboActivate 4.0 you'll be able to tell exactly how many days are left between checks and in the grace period.
Currently (in TA 3.x) you'll only be able to tell the user that they need to re-connect to the internet and let your program reverify with the activation servers.
I want anyone to download the program and use it with restricted features for as long as they want. Is it appropriate to just allow them to use an unactivated program for this?
Yes, that'll work.