After many hours of searching I finally figured out that a regular paint eventargs was not what I needed. Apparently, I needed a protected overrides using a subitem draw event.
Protected Overrides Sub OnDrawSubItem(ByVal e As System.Windows.Forms.DrawListViewSubItemEventArgs)
Dim rc As Rectangle
For Each ec As EmbeddedControl In _embeddedControls
rc = Me.GetSubItemBounds(ec.Item, ec.Column)
ec.Control.Bounds = rc
Next
With e.Graphics
.DrawLines(New Pen(SystemColors.ButtonShadow), New Point() {New Point(e.Bounds.Left, e.Bounds.Top - 1), New Point(e.Bounds.Left + e.Bounds.Width, e.Bounds.Top - 1), New Point(e.Bounds.Left + e.Bounds.Width, e.Bounds.Top + e.Bounds.Height), New Point(e.Bounds.Left, e.Bounds.Top + e.Bounds.Height)})
End With
e.DrawText()
MyBase.OnDrawSubItem(e)
End Sub
This still didnt solve my CPU issue, however, the reference to the 32bit dll is removed and the WM_paint event has now been replaced.