Something like this ?
IF OBJECT_ID('TempDB..#test','U') IS NOT NULL
drop table #test
create table #test
(studentid int, studentname varchar(20), startdate datetime, starttime datetime, endtime datetime
)
insert into #test
select 1, 'john', '2012-01-03 00:00:00', '2012-01-03 07:00:00', '2012-01-03 09:00:00'
select studentid, studentname, startdate, DATEADD(mi, (N-1)*15, starttime), DATEADD(mi, N*15, starttime)
from #test cross join Tally
where n >= 1 and n <= datediff(mi, starttime, endtime)/15