Um why are you doing this the hard way?
Sure you can use the documentation for NSTableView and suporting classes to work out how to populate a table with data and sort it. But it would be a whole lot easier to use Cocoa Bindings.
Create an NSArrayController in your NIB and link that to either your own model, or that created with CoreData visual tool within XCode. Bind the table to the array controller. You will get a populated table view, with column sorting, reordering and selection mechanism for free.
These exist in 10.4 too so no need to wait for Leopard.
You don't need properties. Allowing direct access to object data breaks the concept of encapsulation. Otherwise they are just accessor methods to the data. Why do you need to mark them as something special in code? Document/comment on them sure, but why does the compiler/runtime need to know that setFuel:id and fuel are a property, where as ventTheCore is not?
The inspector palette is the equivalent of a property palette. If you create your own custom controls then you can also create a IBPalette plug-in so others can easily configure and use it within IB.
As you state IB is a tool for creating interfaces, the Cocoa frameworks and tools pretty much force you to develop your application following the MVC pattern. Not a bad thing.
IB has many shortcomings, it hasn't had the major overhaul that ProjectBuilder -> XCode had, but I'd still take the Apple supplied controls over the Windows ones. Try creating a table view that has ruler bars in Visual Studio/.Net.
I've not used Delphi so I can't comment on that, but .Net and Visual Studio I do use regularly. Personally I prefer the NeXT way. Using Visual Studio in the way you describe results in disorganised code and duplication. Two buttons that perform ultimately the same action must still have their own handler, even if it's only a wrapper to a worker method.
If you create the buttons in code you can specifically set the handlers to point elsewhere. If you use the UI to do it you're wrapping a call to your controller in a couple of lines of code. The point is, why should I have to use code to do this? IB doesn't force me to. Read in the header file for the object I want to target. Target the first responder or a specific object instance in the NIB and select an action message to send.
If I really want to sub-class NSWindow and put lots of handler methods and other things in there that really should be in a specialised controller class, and not a view class then I can, just like VS organises it.
ProjectBuilder and InterfaceBuilder were way ahead of the times when they were produced in 1986. Since then other tools caught up, and even bettered them in some areas. Now the old NeXT tools are again being actively being developed we have CoreData, key/value observing and key/value binding that makes most of what you refer to in your artical redundant. Those were released in Mac OS 10.4 Tiger.
XCode 2.0 will make live even easier for the developer to do cool stuff. CoreAnimation is amazing. If you want to have a play with the precursor in Tiger, open up the Quartz Compositor app installed as part of the Dev tools and play.
Garbage collection is added to Objective-C, if you like that sort of thing.
In all I think Cocoa is still strong in all the areas it was originally. Other advances have happened in the developer world and XCode will have to play catch up. But I feel better working with a very well designed framework with tools that aren't the best in every way, than working with an inferior framework in better tools. After all it's much easier for Apple to add features to the tools than it is for Microsoft to fix their framework.
From what I know of Delphi, it's basically object pascal. I can't imagine any of the magic implemented in the Cocoa frameworks being implemented in such a strongly typed language.
Some hopefully useful linkies:
http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.html
http://developer.apple.com/macosx/coredata.html
Standard disclaimer: I'm a falible human, feel free to point out mistakes, etc. that make me look n00bish.