I have fixed my problem myself.
The problem was how to get next row if exists then calculate DateDiff (current Row's Time - Next row's time) till end of related rows. Incase of last row it calculates DateDiff from current rows's time - tracking master tables's session end time.
Hurray ......
select dtl.tracking_dtl_id, Login_Name, mstr.session_id, page_name, dtl.datestamp, isnull(dtl.SessionEndTime, mstr.end_datetime) as end_datetime,
dbo.formattime(datediff(s, dtl.datestamp, isnull(dtl.SessionEndTime, mstr.end_datetime))) as Duration
from tbl_tracking_mstr mstr
inner join
(select top 100 percent Tracking_Dtl_Id, Session_Id, Page_Id, DateStamp,
cnt = (select count(*) from tbl_tracking_dtl b where session_id = '99332BD543231F87C' and b.Tracking_Dtl_Id > a.Tracking_Dtl_Id
), SessionEndTime = (select top 1 c.DateStamp from tbl_tracking_dtl c where session_id = '99332BD543231F87C' and c.tracking_dtl_id > a.tracking_dtl_id order by tracking_dtl_id)
from tbl_tracking_dtl a where session_id = '99332BD543231F87C'
order by tracking_dtl_id ) dtl
on mstr.session_id = dtl.session_id
inner join tbl_tracking_webpages web
on dtl.page_id = web.page_id
where mstr.login_id = 'shamshad.ali'
and mstr.session_id = '99332BD543231F87C' and mstr.start_datetime between 'Jan 1 2006 12:00AM' and 'Jan 10 2006 11:59PM' and mstr.session_id = dtl.session_id
and dtl.page_id = web.page_id order by dtl.tracking_dtl_id
-- Plz close this post
Shamshad Ali.