Try the following tsql Query :-
DECLARE @ID NVARCHAR(300)= '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';
DECLARE @Marks NVARCHAR(300)= '0,70,52,5,8,9,4,6,7,3,5,2,7,1,9,4,0,2,5,0';
INSERT INTO Grade (PersonId,Marks)
SELECT PersonId,
       Marks
FROM
(
    SELECT aSplit.a.value('.', 'NVARCHAR(MAX)') PersonId,
           ROW_NUMBER() OVER(ORDER BY
                            (
                                SELECT 1
                            )) AS row_no
    FROM
    (
        SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS PersonId,
               CAST('<X>'+REPLACE(@Marks, ',', '</X><X>')+'</X>' AS XML) AS Marks
    ) AS A
    CROSS APPLY PersonId.nodes('/X') AS aSplit(a)
) AS P
FULL OUTER JOIN
(
    SELECT bSplit.a.value('.', 'NVARCHAR(MAX)') Marks,
           ROW_NUMBER() OVER(ORDER BY
                            (
                                SELECT 1
                            )) AS row_no
    FROM
    (
        SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS PersonId,
               CAST('<X>'+REPLACE(@Marks, ',', '</X><X>')+'</X>' AS XML) AS Marks
    ) AS A
    CROSS APPLY Marks.nodes('/X') AS bSplit(a)
) AS M ON P.row_no = M.row_no;
Result :
PersonId Marks
1        0
2        70
3        52
4        5
5        8
6        9
7        4
8        6
9        7
10       3
11       5
12       2
13       7
14       1
15       9
16       4
17       0
18       2
19       5
20       0