I just googled without reading. As long as you are happy to work outside I think you could have an entirely software based setup on an android tablet accessing the gps time.
That would still have the same problem: The GPS chipset is connected internally to the CPU via a serial interface. Therefore all it can know is that a stream of characters has arrived in the serial buffer, some of which contain the timestamp. You don't know
[1] the delay between the start of the second and the string appearing, so your clock is slow by some unknown amount. (On my NTP server, the time obtained via NMEA strings is a couple of hundred milliseconds late.)
GPS receiver chipsets usually have a hardware pulse-per-second output to get around this problem: A physical wire that is switched on and off at the exact start of each second. NTP servers running on suitable hardware can use that to get microsecond precision (which they can combine with the less precise serial data to tell them *which* second they're on). The problem is that an Android device won't have this capability.
Last millenium I had a GPS receiver plugged into my laptops rs232 before satnav, before I had heard of Bluetooth or usb and before the internet had its .com bubble. That could pick up the time.
See above - any GPS will give you the time, but no more accurately than NTP over the internet.
Some RS232 GPS receivers will connect their PPS output to one of the handshake lines on the serial port, which ntpd can use. Timing's still an issue, so it's better to use a good old-fashioned serial port on the host computer rather than a USB-RS232 dongle, as that will introduce more difficult-to-quantify delay.
[1] You can estimate the best-case minimum delay from the baud rate. It's not pretty.