Do linux kernel have a feature that can be used to hide an area of hard disk (e.g last 1GB of hard disk) from root user or at least make that area completely unwritable by any means?
The ATA specification has something called Host Protected Area.
This means that the capacity of the device is artificially made less than the full capacity. The area above the reported maximum LBA is this Host Protected Area, and can only be accessed after sending a special command to unlock this area.
This is typically used for storing recovery data, so that the user can't accidentally repartition the disk and wipe out the recovery partition; it's not a partition, after all. My IBM Thinkpad from 2004 implemented this, and it worked quite well.
This may be useful for your application.
No, the root user is always able to write to a block device, unless the controller of the block device determines that an area is read-only. Example: when you flip the read-only switch on an SD card, the SD card controller doesn't allow writing. There's flash memory devices with read-only partitions e.g. in your phone or TV to contain decoder keys.
For consumer hard disks you'd have to modify the firmware, otherwise root can access every byte.