Is it correct that 几点 is for asking specific time in oclock?
"几点" = "what hour". It could be 10:04 or 10:24, so it is only specific for the 'hour', not the specific 'time (moment)'. You can just answer by stating the hour; However, people asking 几点 is actually wanting to know "what hour and minute (the precise time)". We usually reply to this question with the precise time on the clock.
while 什么时候 is more general and can be answered specifically in oclock or a period of time such as morning, noon, night ?
Yes.
"现在是什么时候" = "what time is it now", it can mean specific time on the clock. For example, "现在是 10:24" ; it can also be used generally to refer to a period of time such as morning, noon.
Can i also replace "你什么时候有空" with "你几点有空" ???
No, "你什么时候有空" refers to "which day and what time" ; "你几点有空" doesn't ask what date it will be. You can only replace "你什么时候有空" with "你几点有空" when the date in known
It can refer to any specific moment. For example " 现在是时候回家了" (it is time to go home)
to specifically ask for the precise time on the clock, you can say "现在是什么钟数?" or "现在是几点钟? "