今更ですがソース公開します。v2.5のをGitHubとかじゃなくてそのまんまzipに固めてアップしておきます
コードくっそ汚いですが。。。画像のプレビューとか設定保存のとことかスマートにできると思うんですけどそこは素人なので許して
ダウンロード

とは言ってもソース見ても分かりにくいと思います。正直自分が見てもわかりにくいです。
なので重要な部分だけここに載せておきます
まず仕組みですが、新規にフォームを作成してその新規フォームの設定とかを色々変えています。

    Public Const HWND_TOPMOST = (-1)
    Public Const SWP_NOSIZE = &H1&
    Public Const SWP_NOMOVE = &H2&

    Public Const GWL_EXSTYLE As Long = (-20)

    Public Const WS_EX_LAYERED = &H80000
    Public Const WS_EX_TRANSPARENT = &H20
    Private Const LWA_COLORKEY = &H1
    Public Const LWA_ALPHA = &H2

    Const TOPMOST_FLAGS As UInteger = (SWP_NOSIZE Or SWP_NOMOVE)

    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, _
        ByVal hWndInsertAfter As IntPtr, _
        ByVal X As Integer, _
        ByVal Y As Integer, _
        ByVal cx As Integer, _
        ByVal cy As Integer, _
        ByVal uFlags As UInteger) As Boolean
    End Function

    <DllImport("user32.dll")> _
    Private Shared Function SetWindowLong(hWnd As IntPtr, _
        <MarshalAs(UnmanagedType.I4)> nIndex As Integer, _
        dwNewLong As IntPtr) As Integer
    End Function

    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function GetWindowLong(hWnd As IntPtr, _
        <MarshalAs(UnmanagedType.I4)> nIndex As Integer) As Integer
    End Function

    <DllImport("user32.dll")> _
    Private Shared Function SetLayeredWindowAttributes(hwnd As IntPtr, crKey As UInteger, bAlpha As Byte, dwFlags As UInteger) As Boolean
    End Function
↑で宣言

フォームを起動するときはこんな感じで呼び出す
        SetLayeredWindowAttributes(Form2.Handle, 0, 255, LWA_ALPHA)
        SetWindowPos(Form2.Handle, HWND_TOPMOST, 0, 0, 0, 0, _
            TOPMOST_FLAGS)

あんまり自分でも何やってるかわからない。
忘れたけど多分ここら辺のリンクから参考にしてます。
Visual Basic Develop Tips -ウィンドウを半透明にする
http://www.alato.ne.jp/kazu-/vb/tip22.htm

クロスヘアを作るときはこんな感じ
        Dim points() As Point = _
        {New Point(17, 16), _
         New Point(2, 17), _
         New Point(17, 18), _
         New Point(17, 32), _
         New Point(18, 18), _
         New Point(32, 17), _
         New Point(18, 16), _
         New Point(17, 2)}

        Dim types() As Byte = _
            {Drawing.Drawing2D.PathPointType.Line, _
            Drawing.Drawing2D.PathPointType.Line, _
            Drawing.Drawing2D.PathPointType.Line, _
             Drawing.Drawing2D.PathPointType.Line, _
            Drawing.Drawing2D.PathPointType.Line, _
            Drawing.Drawing2D.PathPointType.Line, _
             Drawing.Drawing2D.PathPointType.Line, _
            Drawing.Drawing2D.PathPointType.Line}
        'GraphicsPathの作成
        Dim path As New Drawing2D.GraphicsPath(points, types)
        Form2.Region = New Region(path)
GraphicsPathの説明はこの辺から 
GraphicsPath クラス (System.Drawing.Drawing2D) - MSDN - Microsoft

パスを使って図形を描く: .NET Tips: C#, VB.NET - DOBON.NET



※この記事はもうちょっと修正予定です。とりあえず暫定的に公開します。