All the statements are true, but I agree confusing :-)
Structs are objects when they are used as an object. This is known "boxing". If a struct is used as an object, it is boxed.
One small example:
int is a struct and thus a value type. Declaring and instantiating an int:
Now assigning the int to an object, boxing happens:
Boxing also happens if an int is passed to a method that accepts an object parameter.
Page 303-305 gives more information on boxing.
Hope this helps.