I finally found the solution!
Because I changed the row from byte to ushort the row has only half the length.
so for a 16 bit image the code would look like this:
private void ImageEditing()
{
Bitmap bmp = new Bitmap("Image.tif");
int Width = bmp.Width;
int Height = bmp.Height;
System.Drawing.Rectangle rec = new System.Drawing.Rectangle(0, 0, Width, Height);
BitmapData bmd = bmp.LockBits(rec, ImageLockMode.ReadOnly, bmp.PixelFormat);
unsafe
{
for (int y = 0; y < Height; y++)
{
ushort* row = (ushort*)bmd.Scan0 + (y * bmd.Stride / 2);
for (int x = 0; x < Width; x++)
{
int index = x * 3;
ushort R = row[index + 2];
ushort G = row[index + 1];
ushort B = row[index];
}
}
}
bmp.UnlockBits(bmd);
bmp.Dispose();
}