Looking for explanation on
apt-get install linux-headers-generic. What does installing linux-headers for a kernel do ? The significance of that command at the time of kernel installation and after a reboot.
In general, the kernel is distribued as a compiled binary. The headers are the source code for the kernel and are generally needed if you are building kernel modules, either manually or with some packages such as nvidia or virtualbox.
Header files in the Linux kernel are used for two purposes:
to define interfaces between components of the kernel, and
to define interfaces between the kernel and user space
In general, user space programs are built against the header files provided by the distribution, typically from a package named glibc-devel, glibc-kernheaders or linux-libc-dev.
See also - http://kernelnewbies.org/KernelHeaders
Without additional information, hard to know what you needed the header for or if you can remove them.