Is there a way to prevent SIGKILL after SIGTERM for a daemon\agent during shutdown\restart? i have a daemon that must be finished gracefully. It should have CUSTOM amount of time before system sends SIGKILL and kills it. 

Is there a possibility to do such thing on MAC?
No - this isn't the decision idiom on macOS so your development requirements are conflicting with the system design intention.

Your daemon should be dealing with this and timing and technical ways to do this are built in to MacOS as well as documented fairly well by Apple.

macOS does not shutdown daemons by just sending a SIGKILL it first sends a SIGTERM and then only if the process is still there a SIGKILL. You have some control to delay this by using the disableSuddenTermination method on NSProcessInfo see  https://developer.apple.com/documentation/foundation/nsprocessinfo/1412841-disablesuddentermination?language=objc

Thus your daemon should be shutting down on receipt of a SIGTERM and so the SIGKILL will have no effect.

This was documented in Apple's The Life Cycle of a Daemon

It is also the normal BSD and Linux way of shutdown except that launchd is not involved.