Я думаю, что единственный способ - использовать параметр Вставить.
Попробуйте этот код
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (richTextBox1.Text.Contains(":-)"))
{
richTextBox1.SelectionStart = richTextBox1.Find(":-)", RichTextBoxFinds.WholeWord);
richTextBox1.SelectionLength = 3;
Clipboard.SetImage(im.Images["smile.png"]);
this.richTextBox1.Paste();
}
}