从语法上讲都是对的. 但是在句子中的语态不一样.第一句是现在完成时.是站在现在的时间点说,前面如果有句子可以是:I think I have never met him before.可以看到think 是现在时的; 第二句是过去完成时,前面如果有句子可以是:I thought I had never met him before.用的是think 的过去时态. 但是意思都是我之前从来没有见过他.
I have never met him before. 比较符合说话的习惯, 用现在完成时,翻译: 我以前从未见过他。 I had never met him before 是过去完成时, 可以放在宾语从句中, 如; I told Li Ming that I had never met him before.