I think I figured it out... just beat him twice in a row
Trick is to look at it in binary ... you want to flip as few bits as possible between moves and want to keep your ending result even... so you want to change a minimal number of bits but keep the value even...
Note in each one of my moves... at the end I left him w/a even number of pearls... he tried to give me an odd number of pearls
here are the moves I did and he did... you'll have to convert from binary to decimal yourself
(also not sure if my explanation of it is 100% accurate... but the method I used has worked every single time now... no matter I start or he)
110 6
101 5
100 4
011 3
start 18
me
110
101
000
011
end 14
him
110
100
000
011
end 13
me
110
100
000
010
end 12
him
011
100
000
010
end 9
me
011
001
000
010
end 6
him
011
001
000
001
end 5
me
001
001
000
001
end 3
him
001
001
000
000
end 2
me
001
000
000
000
end 1
18 10010 start
14 01110 I move
13 01101 he moves
12 01100 I move
9 01001 he moves
6 00110 I move
5 00101 he moves
3 00011 I move
2 00010 he moves
1 00001 I move
Tried again this time I let him go first...
110 6
101 5
100 4
011 3
start 18
him
110 6
101 5
001 1
011 3
=15
me
110
100
001
011
=14
him
110
100
001
010
=13
me
110
100
000
010
=12
him
011
100
000
010
=9
me
011
001
000
010
=6
him
011
001
000
001
=5
me
001
001
000
001
=3
end result is 1 won 3 times in a row heh