@Aiolos, thank you for the reply.
Here is the code for initializing the container, splitter, 1st alv, the 2nd alv is created in the same way just using different instance name.
* Create splitter container
CREATE OBJECT gr_container_sub_s2i
EXPORTING
container_name = gd_alvsub_s2i.
CHECK NOT gr_container_sub_s2i IS INITIAL.
CREATE OBJECT gr_splitter_s2i
EXPORTING
link_dynnr = '0702'
link_repid = 'SAPLAMDPS2I'
parent = gr_container_sub_s2i
rows = 2
columns = 1
EXCEPTIONS
OTHERS = 1.
CALL METHOD gr_splitter_s2i->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = gr_container_***_s2i.
CALL METHOD gr_splitter_s2i->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = gr_container_itm_s2i.
CREATE OBJECT gr_alvgrid_itm_s2i
EXPORTING
i_parent = gr_container_itm_s2i.