If you wrap the resource in a conditional instead of using not_if, you prevent the resource from ever being created unless you need it.

    if node['ntp']['sync_hw_clock'] and not platform_family?('windows')
      execute "Sync hardware clock with system clock" do
        command "hwclock --systohc"
        action :run
      end
    end